<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>set_generic_shape_model_param [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_matching.html">Matching</a> / <a href="toc_matching_shapebased.html">Shape-Based</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">set_generic_shape_model_param</span><span data-if="c" style="display:none;">T_set_generic_shape_model_param</span><span data-if="cpp" style="display:none;">SetGenericShapeModelParam</span><span data-if="dotnet" style="display:none;">SetGenericShapeModelParam</span><span data-if="python" style="display:none;">set_generic_shape_model_param</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">set_generic_shape_model_param</span><span data-if="c" style="display:none;">T_set_generic_shape_model_param</span><span data-if="cpp" style="display:none;">SetGenericShapeModelParam</span><span data-if="dotnet" style="display:none;">SetGenericShapeModelParam</span><span data-if="python" style="display:none;">set_generic_shape_model_param</span></code> — Set selected parameters of the shape model.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>set_generic_shape_model_param</b>( :  : <a href="#ModelID"><i>ModelID</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_set_generic_shape_model_param</b>(const Htuple <a href="#ModelID"><i>ModelID</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>SetGenericShapeModelParam</b>(const HTuple&amp; <a href="#ModelID"><i>ModelID</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HShapeModel.html">HShapeModel</a>::<b>SetGenericShapeModelParam</b>(const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>SetGenericShapeModelParam</b>(<a href="HTuple.html">HTuple</a> <a href="#ModelID"><i>modelID</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HShapeModel.html">HShapeModel</a>.<b>SetGenericShapeModelParam</b>(<a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>set_generic_shape_model_param</b>(<a href="#ModelID"><i>model_id</i></a>: HHandle, <a href="#GenParamName"><i>gen_param_name</i></a>: Sequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: Sequence[Union[int, float, str]]) -&gt; None</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">set_generic_shape_model_param</span><span data-if="c" style="display:none">set_generic_shape_model_param</span><span data-if="cpp" style="display:none">SetGenericShapeModelParam</span><span data-if="com" style="display:none">SetGenericShapeModelParam</span><span data-if="dotnet" style="display:none">SetGenericShapeModelParam</span><span data-if="python" style="display:none">set_generic_shape_model_param</span></code> sets the parameters
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> of the shape model <a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a> to the values
given in <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>.
</p>
<p>Various aspects of the matching process can be controlled by the parameters
that can be selected by <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a>.
In the descriptions below they are grouped into the following
categories (where the category represents the main purpose but not
necessarily the only purpose of the parameter listed within):
</p>
<dl class="generic">

<dt><b>Modifying the Model</b></dt>
<dd>

</dd>

<dt><b>Finding Model Instances</b></dt>
<dd>
<p>
 
</p>
<ol>
<li>
<p> Modify the Instance
</p>
</li>
<li>
<p> Sort out Found Matches
</p>
</li>
<li>
<p> Gray Value Treatment
</p>
</li>
<li>
<p> Refinement
</p>
</li>
<li>
<p> Image Pyramid
</p>
</li>
<li>
<p> Clutter
</p>
</li>
<li>
<p> Regarding the Output
</p>
</li>
</ol>
</dd>

<dt><b>Computational Resources during a Search</b></dt>
<dd>

</dd>
</dl>
<p>
In the following we list the settable parameters for the different categories
and specify cases in which parameter values are modified automatically.
</p>
<h3>Modifying the Model</h3>
<p>In this paragraph we list and explain parameters modifying the model
<a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a> itself.
Changing a corresponding value makes it necessary to train the adjusted model
before the matching (see <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>).
The supported parameters <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> are:
</p>
<dl class="generic">

<dt><b>Contrast</b></dt>
<dd>
<p>

The contrast is a measure for local gray value differences that are used
to distinguish the object from the background or different parts of the
object from each other.
For the model only those pixels are selected which show the asked contrast,
i.e., gray value difference to neighboring pixels.
This asked contrast can be a simple threshold or a hysteresis threshold,
depending on the values set for <i><span data-if="hdevelop" style="display:inline">'contrast_low'</span><span data-if="c" style="display:none">"contrast_low"</span><span data-if="cpp" style="display:none">"contrast_low"</span><span data-if="com" style="display:none">"contrast_low"</span><span data-if="dotnet" style="display:none">"contrast_low"</span><span data-if="python" style="display:none">"contrast_low"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'contrast_high'</span><span data-if="c" style="display:none">"contrast_high"</span><span data-if="cpp" style="display:none">"contrast_high"</span><span data-if="com" style="display:none">"contrast_high"</span><span data-if="dotnet" style="display:none">"contrast_high"</span><span data-if="python" style="display:none">"contrast_high"</span></i>:
</p>
<ul>
<li>
<p> Simple threshold:
</p>
<ul>
<li>
<p> Both are set to the same value which is not <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> One of the parameters is set to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> while the other
one is set to an other value.
</p>
</li>
</ul>
</li>
<li>
<p> Hysteresis threshold:
</p>
<ul>
<li>
<p> Both are set to different values which are both not <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> Both are set to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>
<p>
In these cases the model is segmented using a method similar to the
hysteresis threshold method used in <a href="edges_image.html"><code><span data-if="hdevelop" style="display:inline">edges_image</span><span data-if="c" style="display:none">edges_image</span><span data-if="cpp" style="display:none">EdgesImage</span><span data-if="com" style="display:none">EdgesImage</span><span data-if="dotnet" style="display:none">EdgesImage</span><span data-if="python" style="display:none">edges_image</span></code></a>.
For more information about the hysteresis
threshold method, see <a href="hysteresis_threshold.html"><code><span data-if="hdevelop" style="display:inline">hysteresis_threshold</span><span data-if="c" style="display:none">hysteresis_threshold</span><span data-if="cpp" style="display:none">HysteresisThreshold</span><span data-if="com" style="display:none">HysteresisThreshold</span><span data-if="dotnet" style="display:none">HysteresisThreshold</span><span data-if="python" style="display:none">hysteresis_threshold</span></code></a>.
</p>
</li>
</ul>
<p>
Note, such a contrast is not used in case of training with XLD.
For more information about contrast and its impact on shape model matching,
we refer to the <code>“Solution Guide II-B - Matching”</code>.
</p>
<p>In certain cases, it might happen that the automatic determination of
the contrast thresholds is not sufficient. For example, a manual setting
of these parameters should be preferred if certain model components should
be included or suppressed due to application-specific reasons or if the
object features several different contrasts. The contrast
thresholds should be verified using <a href="inspect_shape_model.html"><code><span data-if="hdevelop" style="display:inline">inspect_shape_model</span><span data-if="c" style="display:none">inspect_shape_model</span><span data-if="cpp" style="display:none">InspectShapeModel</span><span data-if="com" style="display:none">InspectShapeModel</span><span data-if="dotnet" style="display:none">InspectShapeModel</span><span data-if="python" style="display:none">inspect_shape_model</span></code></a> before
calling <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'contrast_high'</span><span data-if="c" style="display:none">"contrast_high"</span><span data-if="cpp" style="display:none">"contrast_high"</span><span data-if="com" style="display:none">"contrast_high"</span><span data-if="dotnet" style="display:none">"contrast_high"</span><span data-if="python" style="display:none">"contrast_high"</span></i>:</p>
<p>
Determines together with
<i><span data-if="hdevelop" style="display:inline">'contrast_low'</span><span data-if="c" style="display:none">"contrast_low"</span><span data-if="cpp" style="display:none">"contrast_low"</span><span data-if="com" style="display:none">"contrast_low"</span><span data-if="dotnet" style="display:none">"contrast_low"</span><span data-if="python" style="display:none">"contrast_low"</span></i> the gray value difference a pixel must have to
be considered as being part of the model, see the explanation above.
In case of a hysteresis threshold this parameter sets the maximum.</p>
<p>
<i>Possible values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>90</i>, <i>80</i>.</p>
<p>
<i>Restriction:</i> Not used in case of training with XLD.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'contrast_low'</span><span data-if="c" style="display:none">"contrast_low"</span><span data-if="cpp" style="display:none">"contrast_low"</span><span data-if="com" style="display:none">"contrast_low"</span><span data-if="dotnet" style="display:none">"contrast_low"</span><span data-if="python" style="display:none">"contrast_low"</span></i>: Determines together with
<i><span data-if="hdevelop" style="display:inline">'contrast_high'</span><span data-if="c" style="display:none">"contrast_high"</span><span data-if="cpp" style="display:none">"contrast_high"</span><span data-if="com" style="display:none">"contrast_high"</span><span data-if="dotnet" style="display:none">"contrast_high"</span><span data-if="python" style="display:none">"contrast_high"</span></i> the gray value difference a pixel must have to
be considered as being part of the model, see the explanation above.
In case of a hysteresis threshold this parameter sets the minimum.
<i>Possible values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>10</i>, <i>20</i>.</p>
<p>
<i>Restriction:</i> Not used in case of training with XLD.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>

</dd>

<dt><b>Rotation</b></dt>
<dd>
<p>

Shape models are created with a rotation range starting at <i>0</i> and
ending at <i>6.28</i> (=<span title="1" style="vertical-align:-0.0710211em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.22777em" height="0.767042em" viewBox="0 0 19.644379 12.272675">
<!-- Original BoundingBox: -9.822189 -6.136337 9.822189 6.136337 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_25">
      <path style="fill-rule: evenodd;" d="M265.000000 -373.000000L378.000000 -373.000000C345.000000 -225.000000,336.000000 -182.000000,336.000000 -115.000000C336.000000 -100.000000,336.000000 -73.000000,344.000000 -39.000000C354.000000 5.000000,365.000000 11.000000,380.000000 11.000000C400.000000 11.000000,421.000000 -7.000000,421.000000 -27.000000C421.000000 -33.000000,421.000000 -35.000000,415.000000 -49.000000C386.000000 -121.000000,386.000000 -186.000000,386.000000 -214.000000C386.000000 -267.000000,393.000000 -321.000000,404.000000 -373.000000L518.000000 -373.000000C531.000000 -373.000000,567.000000 -373.000000,567.000000 -407.000000C567.000000 -431.000000,546.000000 -431.000000,527.000000 -431.000000L192.000000 -431.000000C170.000000 -431.000000,132.000000 -431.000000,88.000000 -384.000000C53.000000 -345.000000,27.000000 -299.000000,27.000000 -294.000000C27.000000 -293.000000,27.000000 -284.000000,39.000000 -284.000000C47.000000 -284.000000,49.000000 -288.000000,55.000000 -296.000000C104.000000 -373.000000,162.000000 -373.000000,182.000000 -373.000000L239.000000 -373.000000C207.000000 -252.000000,153.000000 -131.000000,111.000000 -40.000000C103.000000 -25.000000,103.000000 -23.000000,103.000000 -16.000000C103.000000 3.000000,119.000000 11.000000,132.000000 11.000000C162.000000 11.000000,170.000000 -17.000000,182.000000 -54.000000C196.000000 -100.000000,196.000000 -102.000000,209.000000 -152.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.193802 11.136337)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.163925 11.136337)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_25"></use>
  </g>
</svg></span>), which can be restricted during
the search. The search space, thus discretization steps for the angles
can be modified using:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'angle_step'</span><span data-if="c" style="display:none">"angle_step"</span><span data-if="cpp" style="display:none">"angle_step"</span><span data-if="com" style="display:none">"angle_step"</span><span data-if="dotnet" style="display:none">"angle_step"</span><span data-if="python" style="display:none">"angle_step"</span></i>:</p>
<p>
Determines the step length within the selected range of angles.
Its value should be chosen based on the size of the object.
Smaller models do not have many different discrete rotations in the image,
and hence it is recommended to choose larger values for smaller models.
If set to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.
The set value is clipped to a maximal value of <i>0.20</i>
(=<span title="2" style="vertical-align:-0.424088em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.15935em" height="1.16107em" viewBox="0 0 18.549667 18.577194">
<!-- Original BoundingBox: -9.274841 -9.288605 9.274826 9.288589 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_25">
      <path style="fill-rule: evenodd;" d="M311.000000 -363.000000L430.000000 -363.000000C415.000000 -303.000000,393.000000 -212.000000,393.000000 -133.000000C393.000000 -93.000000,398.000000 -66.000000,404.000000 -44.000000C420.000000 6.000000,433.000000 10.000000,449.000000 10.000000C472.000000 10.000000,496.000000 -11.000000,496.000000 -35.000000C496.000000 -43.000000,494.000000 -47.000000,488.000000 -57.000000C469.000000 -94.000000,451.000000 -151.000000,451.000000 -233.000000C451.000000 -252.000000,451.000000 -292.000000,465.000000 -363.000000L590.000000 -363.000000C608.000000 -363.000000,616.000000 -363.000000,627.000000 -371.000000C641.000000 -381.000000,644.000000 -397.000000,644.000000 -402.000000C644.000000 -431.000000,618.000000 -431.000000,601.000000 -431.000000L224.000000 -431.000000C183.000000 -431.000000,155.000000 -422.000000,110.000000 -380.000000C84.000000 -357.000000,45.000000 -303.000000,45.000000 -294.000000C45.000000 -282.000000,58.000000 -282.000000,62.000000 -282.000000C73.000000 -282.000000,74.000000 -284.000000,80.000000 -293.000000C131.000000 -363.000000,193.000000 -363.000000,215.000000 -363.000000L276.000000 -363.000000C245.000000 -253.000000,191.000000 -135.000000,161.000000 -75.000000C155.000000 -62.000000,145.000000 -41.000000,142.000000 -37.000000C141.000000 -33.000000,139.000000 -29.000000,139.000000 -22.000000C139.000000 -6.000000,151.000000 10.000000,174.000000 10.000000C214.000000 10.000000,225.000000 -35.000000,249.000000 -125.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_54">
      <path style="fill-rule: evenodd;" d="M150.000000 -327.000000C150.000000 -409.000000,157.000000 -483.000000,195.000000 -544.000000C229.000000 -598.000000,283.000000 -635.000000,347.000000 -635.000000C377.000000 -635.000000,417.000000 -627.000000,437.000000 -600.000000C412.000000 -598.000000,391.000000 -581.000000,391.000000 -552.000000C391.000000 -527.000000,408.000000 -505.000000,438.000000 -505.000000C468.000000 -505.000000,486.000000 -525.000000,486.000000 -554.000000C486.000000 -612.000000,444.000000 -664.000000,345.000000 -664.000000C201.000000 -664.000000,54.000000 -532.000000,54.000000 -317.000000C54.000000 -58.000000,176.000000 20.000000,286.000000 20.000000C408.000000 20.000000,514.000000 -73.000000,514.000000 -204.000000C514.000000 -331.000000,413.000000 -425.000000,296.000000 -425.000000C216.000000 -425.000000,172.000000 -372.000000,150.000000 -327.000000M286.000000 -12.000000C236.000000 -12.000000,197.000000 -41.000000,176.000000 -85.000000C161.000000 -115.000000,153.000000 -165.000000,153.000000 -225.000000C153.000000 -322.000000,211.000000 -397.000000,291.000000 -397.000000C337.000000 -397.000000,368.000000 -379.000000,393.000000 -342.000000C417.000000 -304.000000,418.000000 -262.000000,418.000000 -204.000000C418.000000 -147.000000,418.000000 -105.000000,391.000000 -66.000000C367.000000 -31.000000,335.000000 -12.000000,286.000000 -12.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,5.080688 5.515579)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_25"></use>
  </g>
  <path d="M2.653976 7.806625L15.361862 7.806625" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.637604;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.653976 17.288605)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
    <use xlink:href="#GLYPHcmr7_54" x="3.986190"></use>
  </g>
</svg></span>).</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>0.1</i>, <i>0.2</i>.</p>
<p>
<i>Note:</i> Modifications necessitate a model training.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>

</dd>

<dt><b>Scaling</b></dt>
<dd>
<p>

The search space, thus discretization steps for the scaling
can be modified using scaling parameters.
Which ones can be set depends on the type of scaling, see
the overview in the following table.
A scaling value of <i>1.0</i> corresponds to the original size of the
model in the according direction.
</p>
<div style="text-align:center"><table style="width:90%;margin-left:auto;margin-right:auto" class="grid">
<col span="1" style="width:40%;">
<col span="1" style="width:25%;">
<col span="1" style="width:25%;">
<tr>
<td style="text-align:left">
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a>          </td>
<td style="text-align:center">isotropic scaling  </td>
<td style="text-align:center">anisotropic scaling</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'iso_scale_max'</span><span data-if="c" style="display:none">"iso_scale_max"</span><span data-if="cpp" style="display:none">"iso_scale_max"</span><span data-if="com" style="display:none">"iso_scale_max"</span><span data-if="dotnet" style="display:none">"iso_scale_max"</span><span data-if="python" style="display:none">"iso_scale_max"</span></i>      </td>
<td style="text-align:center">x  </td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'iso_scale_min'</span><span data-if="c" style="display:none">"iso_scale_min"</span><span data-if="cpp" style="display:none">"iso_scale_min"</span><span data-if="com" style="display:none">"iso_scale_min"</span><span data-if="dotnet" style="display:none">"iso_scale_min"</span><span data-if="python" style="display:none">"iso_scale_min"</span></i>      </td>
<td style="text-align:center">x  </td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'iso_scale_step'</span><span data-if="c" style="display:none">"iso_scale_step"</span><span data-if="cpp" style="display:none">"iso_scale_step"</span><span data-if="com" style="display:none">"iso_scale_step"</span><span data-if="dotnet" style="display:none">"iso_scale_step"</span><span data-if="python" style="display:none">"iso_scale_step"</span></i>     </td>
<td style="text-align:center">x  </td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'scale_row_max'</span><span data-if="c" style="display:none">"scale_row_max"</span><span data-if="cpp" style="display:none">"scale_row_max"</span><span data-if="com" style="display:none">"scale_row_max"</span><span data-if="dotnet" style="display:none">"scale_row_max"</span><span data-if="python" style="display:none">"scale_row_max"</span></i>      </td>
<td style="text-align:center">   </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'scale_row_min'</span><span data-if="c" style="display:none">"scale_row_min"</span><span data-if="cpp" style="display:none">"scale_row_min"</span><span data-if="com" style="display:none">"scale_row_min"</span><span data-if="dotnet" style="display:none">"scale_row_min"</span><span data-if="python" style="display:none">"scale_row_min"</span></i>      </td>
<td style="text-align:center">   </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'scale_row_step'</span><span data-if="c" style="display:none">"scale_row_step"</span><span data-if="cpp" style="display:none">"scale_row_step"</span><span data-if="com" style="display:none">"scale_row_step"</span><span data-if="dotnet" style="display:none">"scale_row_step"</span><span data-if="python" style="display:none">"scale_row_step"</span></i>     </td>
<td style="text-align:center">   </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'scale_column_max'</span><span data-if="c" style="display:none">"scale_column_max"</span><span data-if="cpp" style="display:none">"scale_column_max"</span><span data-if="com" style="display:none">"scale_column_max"</span><span data-if="dotnet" style="display:none">"scale_column_max"</span><span data-if="python" style="display:none">"scale_column_max"</span></i>   </td>
<td style="text-align:center">   </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'scale_column_min'</span><span data-if="c" style="display:none">"scale_column_min"</span><span data-if="cpp" style="display:none">"scale_column_min"</span><span data-if="com" style="display:none">"scale_column_min"</span><span data-if="dotnet" style="display:none">"scale_column_min"</span><span data-if="python" style="display:none">"scale_column_min"</span></i>   </td>
<td style="text-align:center">   </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'scale_column_step'</span><span data-if="c" style="display:none">"scale_column_step"</span><span data-if="cpp" style="display:none">"scale_column_step"</span><span data-if="com" style="display:none">"scale_column_step"</span><span data-if="dotnet" style="display:none">"scale_column_step"</span><span data-if="python" style="display:none">"scale_column_step"</span></i>  </td>
<td style="text-align:center">   </td>
<td style="text-align:center">x
</td>
</tr>
</table></div>

<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'iso_scale_max'</span><span data-if="c" style="display:none">"iso_scale_max"</span><span data-if="cpp" style="display:none">"iso_scale_max"</span><span data-if="com" style="display:none">"iso_scale_max"</span><span data-if="dotnet" style="display:none">"iso_scale_max"</span><span data-if="python" style="display:none">"iso_scale_max"</span></i>:</p>
<p>
Determines the maximum of the range of
possible isotropic scaling for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>1.0</i>, <i>1.1</i>, <i>1.2</i>.</p>
<p>
<i>Default:</i> <i>1.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'iso_scale_min'</span><span data-if="c" style="display:none">"iso_scale_min"</span><span data-if="cpp" style="display:none">"iso_scale_min"</span><span data-if="com" style="display:none">"iso_scale_min"</span><span data-if="dotnet" style="display:none">"iso_scale_min"</span><span data-if="python" style="display:none">"iso_scale_min"</span></i>: Determines the minimum of the range of
possible isotropic scaling for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>1.0</i>, <i>0.9</i>, <i>0.8</i>.</p>
<p>
<i>Default:</i> <i>1.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'iso_scale_step'</span><span data-if="c" style="display:none">"iso_scale_step"</span><span data-if="cpp" style="display:none">"iso_scale_step"</span><span data-if="com" style="display:none">"iso_scale_step"</span><span data-if="dotnet" style="display:none">"iso_scale_step"</span><span data-if="python" style="display:none">"iso_scale_step"</span></i>: Determines the step length within the
selected range of isotropic scales.
The value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> means its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.</p>

</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'scale_row_max'</span><span data-if="c" style="display:none">"scale_row_max"</span><span data-if="cpp" style="display:none">"scale_row_max"</span><span data-if="com" style="display:none">"scale_row_max"</span><span data-if="dotnet" style="display:none">"scale_row_max"</span><span data-if="python" style="display:none">"scale_row_max"</span></i>: Determines the maximum of the range of
possible scaling in row direction for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>1.0</i>, <i>1.1</i>, <i>1.2</i>.</p>
<p>
<i>Default:</i> <i>1.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'scale_row_min'</span><span data-if="c" style="display:none">"scale_row_min"</span><span data-if="cpp" style="display:none">"scale_row_min"</span><span data-if="com" style="display:none">"scale_row_min"</span><span data-if="dotnet" style="display:none">"scale_row_min"</span><span data-if="python" style="display:none">"scale_row_min"</span></i>: Determines the minimum of the range of
possible scaling in row direction for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>1.0</i>, <i>0.9</i>, <i>0.8</i>.</p>
<p>
<i>Default:</i> <i>1.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'scale_row_step'</span><span data-if="c" style="display:none">"scale_row_step"</span><span data-if="cpp" style="display:none">"scale_row_step"</span><span data-if="com" style="display:none">"scale_row_step"</span><span data-if="dotnet" style="display:none">"scale_row_step"</span><span data-if="python" style="display:none">"scale_row_step"</span></i>: Determines the step length within the
selected range of scales in row direction.
The value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> means its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.</p>

</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'scale_column_max'</span><span data-if="c" style="display:none">"scale_column_max"</span><span data-if="cpp" style="display:none">"scale_column_max"</span><span data-if="com" style="display:none">"scale_column_max"</span><span data-if="dotnet" style="display:none">"scale_column_max"</span><span data-if="python" style="display:none">"scale_column_max"</span></i>: Determines the maximum of the range of
possible scaling in column direction for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>1.0</i>, <i>1.1</i>, <i>1.2</i>.</p>
<p>
<i>Default:</i> <i>1.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'scale_column_min'</span><span data-if="c" style="display:none">"scale_column_min"</span><span data-if="cpp" style="display:none">"scale_column_min"</span><span data-if="com" style="display:none">"scale_column_min"</span><span data-if="dotnet" style="display:none">"scale_column_min"</span><span data-if="python" style="display:none">"scale_column_min"</span></i>: Determines the minimum of the range of
possible scaling in column direction for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>1.0</i>, <i>0.9</i>, <i>0.8</i>.</p>
<p>
<i>Default:</i> <i>1.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'scale_column_step'</span><span data-if="c" style="display:none">"scale_column_step"</span><span data-if="cpp" style="display:none">"scale_column_step"</span><span data-if="com" style="display:none">"scale_column_step"</span><span data-if="dotnet" style="display:none">"scale_column_step"</span><span data-if="python" style="display:none">"scale_column_step"</span></i>: Determines the step length within the
selected range of scales in column direction.
The value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> means its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.
</p>
</li>
</ul>

</dd>

<dt><b>Metric</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'metric'</span><span data-if="c" style="display:none">"metric"</span><span data-if="cpp" style="display:none">"metric"</span><span data-if="com" style="display:none">"metric"</span><span data-if="dotnet" style="display:none">"metric"</span><span data-if="python" style="display:none">"metric"</span></i>:</p>
<p>
Determines the conditions under which
the model is recognized in the image. Supported values for
<i><span data-if="hdevelop" style="display:inline">'metric'</span><span data-if="c" style="display:none">"metric"</span><span data-if="cpp" style="display:none">"metric"</span><span data-if="com" style="display:none">"metric"</span><span data-if="dotnet" style="display:none">"metric"</span><span data-if="python" style="display:none">"metric"</span></i> are:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>: The value is determined during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a> depending if the training is done
using an image (<i><span data-if="hdevelop" style="display:inline">'use_polarity'</span><span data-if="c" style="display:none">"use_polarity"</span><span data-if="cpp" style="display:none">"use_polarity"</span><span data-if="com" style="display:none">"use_polarity"</span><span data-if="dotnet" style="display:none">"use_polarity"</span><span data-if="python" style="display:none">"use_polarity"</span></i>) or XLDs
(<i><span data-if="hdevelop" style="display:inline">'ignore_local_polarity'</span><span data-if="c" style="display:none">"ignore_local_polarity"</span><span data-if="cpp" style="display:none">"ignore_local_polarity"</span><span data-if="com" style="display:none">"ignore_local_polarity"</span><span data-if="dotnet" style="display:none">"ignore_local_polarity"</span><span data-if="python" style="display:none">"ignore_local_polarity"</span></i>).
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'use_polarity'</span><span data-if="c" style="display:none">"use_polarity"</span><span data-if="cpp" style="display:none">"use_polarity"</span><span data-if="com" style="display:none">"use_polarity"</span><span data-if="dotnet" style="display:none">"use_polarity"</span><span data-if="python" style="display:none">"use_polarity"</span></i>: An instance in the image and the model must
have the same contrast.</p>
<p>
<i>Restriction:</i> Only applied to single-channel images.
In case of multichannel images, only the first channel is used
(without error message).</p>
<p>
<i>Example:</i> The model has been created with a bright object on a
dark background.
Only instances are found if they are also brighter than the background.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'ignore_global_polarity'</span><span data-if="c" style="display:none">"ignore_global_polarity"</span><span data-if="cpp" style="display:none">"ignore_global_polarity"</span><span data-if="com" style="display:none">"ignore_global_polarity"</span><span data-if="dotnet" style="display:none">"ignore_global_polarity"</span><span data-if="python" style="display:none">"ignore_global_polarity"</span></i>:</p>
<p>
An instance is found in the
image also if the contrast reverses globally.
This mode increases the runtime of <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>
slightly compared to <i><span data-if="hdevelop" style="display:inline">'use_polarity'</span><span data-if="c" style="display:none">"use_polarity"</span><span data-if="cpp" style="display:none">"use_polarity"</span><span data-if="com" style="display:none">"use_polarity"</span><span data-if="dotnet" style="display:none">"use_polarity"</span><span data-if="python" style="display:none">"use_polarity"</span></i>.</p>
<p>
<i>Restriction:</i> Only applied to single-channel images.
In case of multichannel images, only the first channel is used
(without error message).</p>
<p>
<i>Example:</i> The model has been created with a bright object on a
dark background.
Instances are found if they are brighter or darker than the background.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'ignore_local_polarity'</span><span data-if="c" style="display:none">"ignore_local_polarity"</span><span data-if="cpp" style="display:none">"ignore_local_polarity"</span><span data-if="com" style="display:none">"ignore_local_polarity"</span><span data-if="dotnet" style="display:none">"ignore_local_polarity"</span><span data-if="python" style="display:none">"ignore_local_polarity"</span></i>:</p>
<p>
An instance is found even if the contrast changes locally.
This mode increases the runtime of <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>
significantly compared to <i><span data-if="hdevelop" style="display:inline">'use_polarity'</span><span data-if="c" style="display:none">"use_polarity"</span><span data-if="cpp" style="display:none">"use_polarity"</span><span data-if="com" style="display:none">"use_polarity"</span><span data-if="dotnet" style="display:none">"use_polarity"</span><span data-if="python" style="display:none">"use_polarity"</span></i>.</p>
<p>
It is usually recommendable to create several models that reflect the
possible contrast variations of the object and to match them
simultaneously.</p>
<p>
<i>Restriction:</i> Only applied to single-channel images.
In case of multichannel images, only the first channel is used
(without error message).</p>
<p>
<i>Example:</i> The model or instance contains a part with
medium gray values, within which either darker or brighter sub-objects
may lie.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'ignore_color_polarity'</span><span data-if="c" style="display:none">"ignore_color_polarity"</span><span data-if="cpp" style="display:none">"ignore_color_polarity"</span><span data-if="com" style="display:none">"ignore_color_polarity"</span><span data-if="dotnet" style="display:none">"ignore_color_polarity"</span><span data-if="python" style="display:none">"ignore_color_polarity"</span></i>:</p>
<p>
An instance is found even if the color contrast changes locally.
This mode can increase the runtime of <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>
significantly compared to <i><span data-if="hdevelop" style="display:inline">'use_polarity'</span><span data-if="c" style="display:none">"use_polarity"</span><span data-if="cpp" style="display:none">"use_polarity"</span><span data-if="com" style="display:none">"use_polarity"</span><span data-if="dotnet" style="display:none">"use_polarity"</span><span data-if="python" style="display:none">"use_polarity"</span></i>.</p>
<p>
This metric can be used for images of an arbitrary number of channels,
which do not need to contain a spectral subdivision of the light
(like in an RGB image).
For single-channel images it has the same effect as
<i><span data-if="hdevelop" style="display:inline">'ignore_local_polarity'</span><span data-if="c" style="display:none">"ignore_local_polarity"</span><span data-if="cpp" style="display:none">"ignore_local_polarity"</span><span data-if="com" style="display:none">"ignore_local_polarity"</span><span data-if="dotnet" style="display:none">"ignore_local_polarity"</span><span data-if="python" style="display:none">"ignore_local_polarity"</span></i>.
The number of channels is allowed to differ from the traininig
with <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a> to the
search with <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>.</p>
<p>
<i>Example:</i> Instances are found even if parts of the object can
change their color, e.g., from red to green.
</p>
</li>
</ul>
<p>
<i>Restriction:</i> Using XLDs, resetting the metric requires that
the edge-direction information is available as XLD contour attribute.
For more information see <a href="set_shape_model_metric.html"><code><span data-if="hdevelop" style="display:inline">set_shape_model_metric</span><span data-if="c" style="display:none">set_shape_model_metric</span><span data-if="cpp" style="display:none">SetShapeModelMetric</span><span data-if="com" style="display:none">SetShapeModelMetric</span><span data-if="dotnet" style="display:none">SetShapeModelMetric</span><span data-if="python" style="display:none">set_shape_model_metric</span></code></a>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>

</dd>

<dt><b>Size</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'min_size'</span><span data-if="c" style="display:none">"min_size"</span><span data-if="cpp" style="display:none">"min_size"</span><span data-if="com" style="display:none">"min_size"</span><span data-if="dotnet" style="display:none">"min_size"</span><span data-if="python" style="display:none">"min_size"</span></i>:</p>
<p>
Determines the minimum number of points a model
component must have in order to be considered. Thus, components having
fewer points than <i><span data-if="hdevelop" style="display:inline">'min_size'</span><span data-if="c" style="display:none">"min_size"</span><span data-if="cpp" style="display:none">"min_size"</span><span data-if="com" style="display:none">"min_size"</span><span data-if="dotnet" style="display:none">"min_size"</span><span data-if="python" style="display:none">"min_size"</span></i> are suppressed.
As <i><span data-if="hdevelop" style="display:inline">'min_size'</span><span data-if="c" style="display:none">"min_size"</span><span data-if="cpp" style="display:none">"min_size"</span><span data-if="com" style="display:none">"min_size"</span><span data-if="dotnet" style="display:none">"min_size"</span><span data-if="python" style="display:none">"min_size"</span></i> is applied on the extent of the components, the
derived model contours can still be smaller than the specified minimum
size. This threshold for the minimum size is divided by two for each
successive pyramid level.
The effect of this parameter can be checked in advance with
<a href="inspect_shape_model.html"><code><span data-if="hdevelop" style="display:inline">inspect_shape_model</span><span data-if="c" style="display:none">inspect_shape_model</span><span data-if="cpp" style="display:none">InspectShapeModel</span><span data-if="com" style="display:none">InspectShapeModel</span><span data-if="dotnet" style="display:none">InspectShapeModel</span><span data-if="python" style="display:none">inspect_shape_model</span></code></a>.</p>
<p>
If set to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.</p>
<p>
<i>Restriction:</i> Not used in case of training with XLD.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'optimization'</span><span data-if="c" style="display:none">"optimization"</span><span data-if="cpp" style="display:none">"optimization"</span><span data-if="com" style="display:none">"optimization"</span><span data-if="dotnet" style="display:none">"optimization"</span><span data-if="python" style="display:none">"optimization"</span></i>:</p>
<p>
Determines the number of points by which the model is reduced.
This reduction can be useful for particularly large models.
Possible values:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>: The number of points is automatically determined
by <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>: All model points are stored.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'point_reduction_low'</span><span data-if="c" style="display:none">"point_reduction_low"</span><span data-if="cpp" style="display:none">"point_reduction_low"</span><span data-if="com" style="display:none">"point_reduction_low"</span><span data-if="dotnet" style="display:none">"point_reduction_low"</span><span data-if="python" style="display:none">"point_reduction_low"</span></i>: The number of points is reduced
to roughly <span title="3" style="vertical-align:-0.436173em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.762221em" height="1.31024em" viewBox="0 0 12.195541 20.963913">
<!-- Original BoundingBox: -6.097778 -10.481964 6.097763 10.481949 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_50">
      <path style="fill-rule: evenodd;" d="M505.000000 -182.000000L471.000000 -182.000000C468.000000 -160.000000,458.000000 -101.000000,445.000000 -91.000000C437.000000 -85.000000,360.000000 -85.000000,346.000000 -85.000000L162.000000 -85.000000C267.000000 -178.000000,302.000000 -206.000000,362.000000 -253.000000C436.000000 -312.000000,505.000000 -374.000000,505.000000 -469.000000C505.000000 -590.000000,399.000000 -664.000000,271.000000 -664.000000C147.000000 -664.000000,63.000000 -577.000000,63.000000 -485.000000C63.000000 -434.000000,106.000000 -429.000000,116.000000 -429.000000C140.000000 -429.000000,169.000000 -446.000000,169.000000 -482.000000C169.000000 -500.000000,162.000000 -535.000000,110.000000 -535.000000C141.000000 -606.000000,209.000000 -628.000000,256.000000 -628.000000C356.000000 -628.000000,408.000000 -550.000000,408.000000 -469.000000C408.000000 -382.000000,346.000000 -313.000000,314.000000 -277.000000L73.000000 -39.000000C63.000000 -30.000000,63.000000 -28.000000,63.000000 -0.000000L475.000000 -0.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.831039 7.708939)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
  </g>
  <path d="M2.831039 9.999985L9.184967 9.999985" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.637604;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.831039 19.481964)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_50"></use>
  </g>
</svg></span>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'point_reduction_medium'</span><span data-if="c" style="display:none">"point_reduction_medium"</span><span data-if="cpp" style="display:none">"point_reduction_medium"</span><span data-if="com" style="display:none">"point_reduction_medium"</span><span data-if="dotnet" style="display:none">"point_reduction_medium"</span><span data-if="python" style="display:none">"point_reduction_medium"</span></i>: The number of points is reduced
to roughly <span title="4" style="vertical-align:-0.436173em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.762221em" height="1.31024em" viewBox="0 0 12.195541 20.963913">
<!-- Original BoundingBox: -6.097778 -10.481964 6.097763 10.481949 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_51">
      <path style="fill-rule: evenodd;" d="M273.000000 -334.000000C351.000000 -334.000000,407.000000 -280.000000,407.000000 -173.000000C407.000000 -49.000000,335.000000 -12.000000,277.000000 -12.000000C237.000000 -12.000000,149.000000 -23.000000,107.000000 -82.000000C154.000000 -84.000000,165.000000 -117.000000,165.000000 -138.000000C165.000000 -170.000000,141.000000 -193.000000,110.000000 -193.000000C82.000000 -193.000000,54.000000 -176.000000,54.000000 -135.000000C54.000000 -41.000000,158.000000 20.000000,279.000000 20.000000C418.000000 20.000000,514.000000 -73.000000,514.000000 -173.000000C514.000000 -251.000000,450.000000 -329.000000,340.000000 -352.000000C445.000000 -390.000000,483.000000 -465.000000,483.000000 -526.000000C483.000000 -605.000000,392.000000 -664.000000,281.000000 -664.000000C170.000000 -664.000000,85.000000 -610.000000,85.000000 -530.000000C85.000000 -496.000000,107.000000 -477.000000,137.000000 -477.000000C168.000000 -477.000000,188.000000 -500.000000,188.000000 -528.000000C188.000000 -557.000000,168.000000 -578.000000,137.000000 -580.000000C172.000000 -624.000000,241.000000 -635.000000,278.000000 -635.000000C323.000000 -635.000000,386.000000 -613.000000,386.000000 -526.000000C386.000000 -484.000000,372.000000 -438.000000,346.000000 -407.000000C313.000000 -369.000000,285.000000 -367.000000,235.000000 -364.000000C210.000000 -362.000000,208.000000 -362.000000,203.000000 -361.000000C201.000000 -361.000000,193.000000 -359.000000,193.000000 -348.000000C193.000000 -334.000000,202.000000 -334.000000,219.000000 -334.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.831039 7.708939)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
  </g>
  <path d="M2.831039 9.999985L9.184967 9.999985" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.637604;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.831039 19.481964)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_51"></use>
  </g>
</svg></span>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'point_reduction_high'</span><span data-if="c" style="display:none">"point_reduction_high"</span><span data-if="cpp" style="display:none">"point_reduction_high"</span><span data-if="com" style="display:none">"point_reduction_high"</span><span data-if="dotnet" style="display:none">"point_reduction_high"</span><span data-if="python" style="display:none">"point_reduction_high"</span></i>: The number of points is reduced
to roughly <span title="5" style="vertical-align:-0.436173em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.762221em" height="1.31024em" viewBox="0 0 12.195541 20.963913">
<!-- Original BoundingBox: -6.097778 -10.481964 6.097763 10.481949 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_49">
      <path style="fill-rule: evenodd;" d="M335.000000 -636.000000C335.000000 -663.000000,333.000000 -664.000000,305.000000 -664.000000C241.000000 -601.000000,150.000000 -600.000000,109.000000 -600.000000L109.000000 -564.000000C133.000000 -564.000000,199.000000 -564.000000,254.000000 -592.000000L254.000000 -82.000000C254.000000 -49.000000,254.000000 -36.000000,154.000000 -36.000000L116.000000 -36.000000L116.000000 -0.000000L294.000000 -0.000000L134.000000 -1.000000L257.000000 -4.000000L294.000000 -4.000000L325.000000 -4.000000L451.000000 -1.000000L473.000000 -0.000000L473.000000 -36.000000L435.000000 -36.000000C335.000000 -36.000000,335.000000 -49.000000,335.000000 -82.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmr7_52">
      <path style="fill-rule: evenodd;" d="M529.000000 -164.000000L529.000000 -200.000000L418.000000 -200.000000L418.000000 -646.000000C418.000000 -667.000000,418.000000 -674.000000,396.000000 -674.000000C384.000000 -674.000000,380.000000 -674.000000,370.000000 -660.000000L39.000000 -200.000000L39.000000 -164.000000L333.000000 -164.000000L333.000000 -82.000000C333.000000 -48.000000,333.000000 -36.000000,252.000000 -36.000000L225.000000 -36.000000L225.000000 -0.000000L375.000000 -0.000000L275.000000 -2.000000L339.000000 -4.000000L375.000000 -4.000000L412.000000 -4.000000L476.000000 -2.000000L526.000000 -0.000000L526.000000 -36.000000L499.000000 -36.000000C418.000000 -36.000000,418.000000 -48.000000,418.000000 -82.000000L418.000000 -164.000000M340.000000 -566.000000L340.000000 -200.000000L76.000000 -200.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.831039 7.708939)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_49"></use>
  </g>
  <path d="M2.831039 9.999985L9.184967 9.999985" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.637604;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,2.831039 19.481964)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr7_52"></use>
  </g>
</svg></span>.
</p>
</li>
</ul>
<p>
In case the number of model points is reduced it may be necessary to set
the parameter <i><span data-if="hdevelop" style="display:inline">'greediness'</span><span data-if="c" style="display:none">"greediness"</span><span data-if="cpp" style="display:none">"greediness"</span><span data-if="com" style="display:none">"greediness"</span><span data-if="dotnet" style="display:none">"greediness"</span><span data-if="python" style="display:none">"greediness"</span></i> to a smaller value,
e.g., <i>0.7</i> or <i>0.8</i>.
Note, for small models reducing the number of model points usually does
not speed up the search as more potential instances will be examined.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>

</dd>

<dt><b>Image Pyramid</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'num_levels'</span><span data-if="c" style="display:none">"num_levels"</span><span data-if="cpp" style="display:none">"num_levels"</span><span data-if="com" style="display:none">"num_levels"</span><span data-if="dotnet" style="display:none">"num_levels"</span><span data-if="python" style="display:none">"num_levels"</span></i>:</p>
<p>
Number of considered image pyramid levels.
Its value must be chosen such that the model is still recognizable and
contains a sufficient number of points (at least four) on the highest
pyramid level.
This can be checked using the output of <a href="inspect_shape_model.html"><code><span data-if="hdevelop" style="display:inline">inspect_shape_model</span><span data-if="c" style="display:none">inspect_shape_model</span><span data-if="cpp" style="display:none">InspectShapeModel</span><span data-if="com" style="display:none">InspectShapeModel</span><span data-if="dotnet" style="display:none">InspectShapeModel</span><span data-if="python" style="display:none">inspect_shape_model</span></code></a>.
It is advisable to set a value as large as possible as it reduces the
runtime to find an instance significantly.</p>
<p>
If set to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.</p>
<p>
It can happen that the automatically determined value does not suit.
If the number of pyramid levels is chosen too large, the model may not be
recognized in the image or only with very low values for the parameters
<i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i> or <i><span data-if="hdevelop" style="display:inline">'greediness'</span><span data-if="c" style="display:none">"greediness"</span><span data-if="cpp" style="display:none">"greediness"</span><span data-if="com" style="display:none">"greediness"</span><span data-if="dotnet" style="display:none">"greediness"</span><span data-if="python" style="display:none">"greediness"</span></i>.
If the number of pyramid levels is chosen too small, the time required
to find the model in <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a> may increase.
In both cases, the number of pyramid levels should be selected
using the output of <a href="inspect_shape_model.html"><code><span data-if="hdevelop" style="display:inline">inspect_shape_model</span><span data-if="c" style="display:none">inspect_shape_model</span><span data-if="cpp" style="display:none">InspectShapeModel</span><span data-if="com" style="display:none">InspectShapeModel</span><span data-if="dotnet" style="display:none">InspectShapeModel</span><span data-if="python" style="display:none">inspect_shape_model</span></code></a>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>

</dd>

<dt><b>Naming</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'model_identifier'</span><span data-if="c" style="display:none">"model_identifier"</span><span data-if="cpp" style="display:none">"model_identifier"</span><span data-if="com" style="display:none">"model_identifier"</span><span data-if="dotnet" style="display:none">"model_identifier"</span><span data-if="python" style="display:none">"model_identifier"</span></i>:</p>
<p>
Overwrites the current identifier string with <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>.
The given identifier should be unique to avoid ambiguities
at e.g., a later match retrieval with
<a href="get_generic_shape_model_result.html"><code><span data-if="hdevelop" style="display:inline">get_generic_shape_model_result</span><span data-if="c" style="display:none">get_generic_shape_model_result</span><span data-if="cpp" style="display:none">GetGenericShapeModelResult</span><span data-if="com" style="display:none">GetGenericShapeModelResult</span><span data-if="dotnet" style="display:none">GetGenericShapeModelResult</span><span data-if="python" style="display:none">get_generic_shape_model_result</span></code></a>.</p>
<p>
<i>Restriction:</i> <i><span data-if="hdevelop" style="display:inline">'model_identifier'</span><span data-if="c" style="display:none">"model_identifier"</span><span data-if="cpp" style="display:none">"model_identifier"</span><span data-if="com" style="display:none">"model_identifier"</span><span data-if="dotnet" style="display:none">"model_identifier"</span><span data-if="python" style="display:none">"model_identifier"</span></i>
must be a non-emtpy string.
The following words are reserved and
cannot be used as identifier names: <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>, <i><span data-if="hdevelop" style="display:inline">'best'</span><span data-if="c" style="display:none">"best"</span><span data-if="cpp" style="display:none">"best"</span><span data-if="com" style="display:none">"best"</span><span data-if="dotnet" style="display:none">"best"</span><span data-if="python" style="display:none">"best"</span></i>.</p>
<p>
<i>Default:</i> The string which is automatically set
at the shape model creation.
</p>
</li>
</ul>

</dd>
</dl>
<h3>Finding Model Instances</h3>
<p>In this paragraph we list parameters modifying the search of a
<a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a>.
Modifying these parameters do not necessitate a model training,
except they are set from a not-estimated value to a value leading to an
automatic estimation during <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.
The descriptions of these parameters contain a corresponding note.
The supported parameters <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> are:
</p>
<ol>
<li>
<p> <b>Modify the Instance</b>
</p>
<dl class="generic">

<dt><b>Rotation</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'angle_start'</span><span data-if="c" style="display:none">"angle_start"</span><span data-if="cpp" style="display:none">"angle_start"</span><span data-if="com" style="display:none">"angle_start"</span><span data-if="dotnet" style="display:none">"angle_start"</span><span data-if="python" style="display:none">"angle_start"</span></i>:</p>
<p>
Determines the start of the range of
possible rotations for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>0.0</i>, <i>-3.14</i>,
<i>3.14</i>.</p>
<p>
<i>Default:</i> <i>0.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'angle_end'</span><span data-if="c" style="display:none">"angle_end"</span><span data-if="cpp" style="display:none">"angle_end"</span><span data-if="com" style="display:none">"angle_end"</span><span data-if="dotnet" style="display:none">"angle_end"</span><span data-if="python" style="display:none">"angle_end"</span></i> Determines the end of the range of
possible rotations for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i>0.0</i>, <i>3.14</i>, <i>6.28</i>.</p>
<p>
<i>Default:</i> <i>6.28</i> (= <span title="6" style="vertical-align:-0.0710211em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1.22777em" height="0.767042em" viewBox="0 0 19.644379 12.272675">
<!-- Original BoundingBox: -9.822189 -6.136337 9.822189 6.136337 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmr10_50">
      <path style="fill-rule: evenodd;" d="M127.000000 -77.000000L233.000000 -180.000000C389.000000 -318.000000,449.000000 -372.000000,449.000000 -472.000000C449.000000 -586.000000,359.000000 -666.000000,237.000000 -666.000000C124.000000 -666.000000,50.000000 -574.000000,50.000000 -485.000000C50.000000 -429.000000,100.000000 -429.000000,103.000000 -429.000000C120.000000 -429.000000,155.000000 -441.000000,155.000000 -482.000000C155.000000 -508.000000,137.000000 -534.000000,102.000000 -534.000000C94.000000 -534.000000,92.000000 -534.000000,89.000000 -533.000000C112.000000 -598.000000,166.000000 -635.000000,224.000000 -635.000000C315.000000 -635.000000,358.000000 -554.000000,358.000000 -472.000000C358.000000 -392.000000,308.000000 -313.000000,253.000000 -251.000000L61.000000 -37.000000C50.000000 -26.000000,50.000000 -24.000000,50.000000 -0.000000L421.000000 -0.000000L449.000000 -174.000000L424.000000 -174.000000C419.000000 -144.000000,412.000000 -100.000000,402.000000 -85.000000C395.000000 -77.000000,329.000000 -77.000000,307.000000 -77.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_25">
      <path style="fill-rule: evenodd;" d="M265.000000 -373.000000L378.000000 -373.000000C345.000000 -225.000000,336.000000 -182.000000,336.000000 -115.000000C336.000000 -100.000000,336.000000 -73.000000,344.000000 -39.000000C354.000000 5.000000,365.000000 11.000000,380.000000 11.000000C400.000000 11.000000,421.000000 -7.000000,421.000000 -27.000000C421.000000 -33.000000,421.000000 -35.000000,415.000000 -49.000000C386.000000 -121.000000,386.000000 -186.000000,386.000000 -214.000000C386.000000 -267.000000,393.000000 -321.000000,404.000000 -373.000000L518.000000 -373.000000C531.000000 -373.000000,567.000000 -373.000000,567.000000 -407.000000C567.000000 -431.000000,546.000000 -431.000000,527.000000 -431.000000L192.000000 -431.000000C170.000000 -431.000000,132.000000 -431.000000,88.000000 -384.000000C53.000000 -345.000000,27.000000 -299.000000,27.000000 -294.000000C27.000000 -293.000000,27.000000 -284.000000,39.000000 -284.000000C47.000000 -284.000000,49.000000 -288.000000,55.000000 -296.000000C104.000000 -373.000000,162.000000 -373.000000,182.000000 -373.000000L239.000000 -373.000000C207.000000 -252.000000,153.000000 -131.000000,111.000000 -40.000000C103.000000 -25.000000,103.000000 -23.000000,103.000000 -16.000000C103.000000 3.000000,119.000000 11.000000,132.000000 11.000000C162.000000 11.000000,170.000000 -17.000000,182.000000 -54.000000C196.000000 -100.000000,196.000000 -102.000000,209.000000 -152.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.193802 11.136337)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmr10_50"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,8.163925 11.136337)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_25"></use>
  </g>
</svg></span>).
</p>
</li>
</ul>
<p>
<i>Example:</i> <i><span data-if="hdevelop" style="display:inline">'angle_start'</span><span data-if="c" style="display:none">"angle_start"</span><span data-if="cpp" style="display:none">"angle_start"</span><span data-if="com" style="display:none">"angle_start"</span><span data-if="dotnet" style="display:none">"angle_start"</span><span data-if="python" style="display:none">"angle_start"</span></i> = <i><span data-if="hdevelop" style="display:inline">'-rad(10)'</span><span data-if="c" style="display:none">"-rad(10)"</span><span data-if="cpp" style="display:none">"-rad(10)"</span><span data-if="com" style="display:none">"-rad(10)"</span><span data-if="dotnet" style="display:none">"-rad(10)"</span><span data-if="python" style="display:none">"-rad(10)"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'angle_end'</span><span data-if="c" style="display:none">"angle_end"</span><span data-if="cpp" style="display:none">"angle_end"</span><span data-if="com" style="display:none">"angle_end"</span><span data-if="dotnet" style="display:none">"angle_end"</span><span data-if="python" style="display:none">"angle_end"</span></i> = <i><span data-if="hdevelop" style="display:inline">'rad(10)'</span><span data-if="c" style="display:none">"rad(10)"</span><span data-if="cpp" style="display:none">"rad(10)"</span><span data-if="com" style="display:none">"rad(10)"</span><span data-if="dotnet" style="display:none">"rad(10)"</span><span data-if="python" style="display:none">"rad(10)"</span></i> searches for matches in the
range from [rad(350), rad(360)] to [0, rad(10)].
</p>
</dd>

<dt><b>Scaling</b></dt>
<dd>
<p>

The scaling range specified for the trained model
can be restricted further for the search.
For these parameters the value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> means that they do not
restrict the according range.</p>
<p>
Note, that these restrictions can only be applied if the search space is
further limited. Thus, a smaller maximum and a higher minimum scaling
parameter needs to be set. Otherwise, the model has to be trained
anew with adjusted scaling parameters.
</p>
<div style="text-align:center"><table style="width:90%;margin-left:auto;margin-right:auto" class="grid">
<col span="1" style="width:40%;">
<col span="1" style="width:25%;">
<col span="1" style="width:25%;">
<tr>
<td style="text-align:left">
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a>          </td>
<td style="text-align:center">isotropic scaling  </td>
<td style="text-align:center">anisotropic scaling</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'restrict_iso_scale_max'</span><span data-if="c" style="display:none">"restrict_iso_scale_max"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_max"</span><span data-if="com" style="display:none">"restrict_iso_scale_max"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_max"</span><span data-if="python" style="display:none">"restrict_iso_scale_max"</span></i>      </td>
<td style="text-align:center">x   </td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'restrict_iso_scale_min'</span><span data-if="c" style="display:none">"restrict_iso_scale_min"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_min"</span><span data-if="com" style="display:none">"restrict_iso_scale_min"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_min"</span><span data-if="python" style="display:none">"restrict_iso_scale_min"</span></i>      </td>
<td style="text-align:center">x   </td>
<td style="text-align:center"></td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'restrict_scale_row_max'</span><span data-if="c" style="display:none">"restrict_scale_row_max"</span><span data-if="cpp" style="display:none">"restrict_scale_row_max"</span><span data-if="com" style="display:none">"restrict_scale_row_max"</span><span data-if="dotnet" style="display:none">"restrict_scale_row_max"</span><span data-if="python" style="display:none">"restrict_scale_row_max"</span></i>      </td>
<td style="text-align:center">    </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'restrict_scale_row_min'</span><span data-if="c" style="display:none">"restrict_scale_row_min"</span><span data-if="cpp" style="display:none">"restrict_scale_row_min"</span><span data-if="com" style="display:none">"restrict_scale_row_min"</span><span data-if="dotnet" style="display:none">"restrict_scale_row_min"</span><span data-if="python" style="display:none">"restrict_scale_row_min"</span></i>      </td>
<td style="text-align:center">    </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'restrict_scale_column_max'</span><span data-if="c" style="display:none">"restrict_scale_column_max"</span><span data-if="cpp" style="display:none">"restrict_scale_column_max"</span><span data-if="com" style="display:none">"restrict_scale_column_max"</span><span data-if="dotnet" style="display:none">"restrict_scale_column_max"</span><span data-if="python" style="display:none">"restrict_scale_column_max"</span></i>   </td>
<td style="text-align:center">    </td>
<td style="text-align:center">x</td>
</tr>
<tr>
<td style="text-align:left">
<i><span data-if="hdevelop" style="display:inline">'restrict_scale_column_min'</span><span data-if="c" style="display:none">"restrict_scale_column_min"</span><span data-if="cpp" style="display:none">"restrict_scale_column_min"</span><span data-if="com" style="display:none">"restrict_scale_column_min"</span><span data-if="dotnet" style="display:none">"restrict_scale_column_min"</span><span data-if="python" style="display:none">"restrict_scale_column_min"</span></i>   </td>
<td style="text-align:center">    </td>
<td style="text-align:center">x
</td>
</tr>
</table></div>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'restrict_iso_scale_max'</span><span data-if="c" style="display:none">"restrict_iso_scale_max"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_max"</span><span data-if="com" style="display:none">"restrict_iso_scale_max"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_max"</span><span data-if="python" style="display:none">"restrict_iso_scale_max"</span></i>:</p>
<p>
Determines a possibly restricted
maximum of the range of possible scaling for which the model is
searched.</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>1.1</i>, <i>1.2</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'restrict_iso_scale_min'</span><span data-if="c" style="display:none">"restrict_iso_scale_min"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_min"</span><span data-if="com" style="display:none">"restrict_iso_scale_min"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_min"</span><span data-if="python" style="display:none">"restrict_iso_scale_min"</span></i>:</p>
<p>
Determines a possibly restricted
minimum of the range of possible scaling for which the model is
searched.</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>0.9</i>, <i>0.8</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'restrict_scale_row_max'</span><span data-if="c" style="display:none">"restrict_scale_row_max"</span><span data-if="cpp" style="display:none">"restrict_scale_row_max"</span><span data-if="com" style="display:none">"restrict_scale_row_max"</span><span data-if="dotnet" style="display:none">"restrict_scale_row_max"</span><span data-if="python" style="display:none">"restrict_scale_row_max"</span></i>:</p>
<p>
Determines a possibly restricted
maximum of the range of possible scaling in row direction for which
the model is searched.</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>1.1</i>, <i>1.2</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'restrict_scale_row_min'</span><span data-if="c" style="display:none">"restrict_scale_row_min"</span><span data-if="cpp" style="display:none">"restrict_scale_row_min"</span><span data-if="com" style="display:none">"restrict_scale_row_min"</span><span data-if="dotnet" style="display:none">"restrict_scale_row_min"</span><span data-if="python" style="display:none">"restrict_scale_row_min"</span></i>:</p>
<p>
Determines a possibly restricted
minimum of the range of possible scaling in row direction for which
the model is searched.</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>0.9</i>, <i>0.8</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'restrict_scale_column_max'</span><span data-if="c" style="display:none">"restrict_scale_column_max"</span><span data-if="cpp" style="display:none">"restrict_scale_column_max"</span><span data-if="com" style="display:none">"restrict_scale_column_max"</span><span data-if="dotnet" style="display:none">"restrict_scale_column_max"</span><span data-if="python" style="display:none">"restrict_scale_column_max"</span></i>:</p>
<p>
Determines a possibly
restricted maximum of the range of possible scaling in column direction
for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>1.1</i>, <i>1.2</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'restrict_scale_column_min'</span><span data-if="c" style="display:none">"restrict_scale_column_min"</span><span data-if="cpp" style="display:none">"restrict_scale_column_min"</span><span data-if="com" style="display:none">"restrict_scale_column_min"</span><span data-if="dotnet" style="display:none">"restrict_scale_column_min"</span><span data-if="python" style="display:none">"restrict_scale_column_min"</span></i>:</p>
<p>
Determines a possibly
restricted minimum of the range of possible scaling in column direction
for which the model is searched.</p>
<p>
<i>Suggested values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>0.9</i>, <i>0.8</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>

</dd>

<dt><b>Deformation</b></dt>
<dd>
<p>

</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i>:</p>
<p>
Determines by how much an object is
allowed to deviate from the model in order to be considered as a
match. The maximal allowable object deformation is specified in pixels.
A value of <i>0</i> means no deformation is allowed during the
search.</p>
<p>
<i>Example:</i> An object with a shape deformed by up to 2 pixels with
respect to the shape of the model can be found with
<i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i> = <i>2</i>.</p>
<p>
Increasing the value for <i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i> often results in an
increased runtime.</p>
<p>
Furthermore, increasing the value for <i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i>
increases the risk of obtaining unwanted matches.
This is especially the case for small objects or objects with fine
structures because they lose their characteristic shape, which is
important for a robust search.</p>
<p>
Interplay with <i><span data-if="hdevelop" style="display:inline">'subpixel'</span><span data-if="c" style="display:none">"subpixel"</span><span data-if="cpp" style="display:none">"subpixel"</span><span data-if="com" style="display:none">"subpixel"</span><span data-if="dotnet" style="display:none">"subpixel"</span><span data-if="python" style="display:none">"subpixel"</span></i>:
When deformation is allowed (thus, a value larger <i>0</i> is set),
the score computation depends on the possible subpixel refinement.
In most cases the score changes if a least-squares adjustment is set.
Using an adjustment the score might increase when increasing the maximum
deformation because then for the model points more corresponding image
points can be found.</p>
<p>
<i>Default:</i> <i>0</i>.
</p>
</li>
</ul>
</dd>
</dl>

</li>
<li>
<p> <b>Sort out Found Matches</b>
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i>:</p>
<p>
Determines the minimum score a potential match
must have to be regarded as model instance in the image.
The larger <i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i> is chosen, the faster is the search.
If the model can be expected never to be occluded in the images,
<i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i> may be set as high as <i>0.8</i> or even
<i>0.9</i>.
If the matches are not tracked to the lowest pyramid level during
<a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a> it might happen that instances with
a score slightly below <i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i> are returned.</p>
<p>
The interplay with <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> is explained in the
description of the latter one.</p>
<p>
<i>Default:</i> <i>0.5</i>.
</p>
</li>
</ul>

<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i>:</p>
<p>
Determines the maximum number of returned instances.</p>
<p>
The value <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i> (or <i>0</i>) mean that every instance whose
score is higher than <i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i> is returned.
For the rest the interplay between <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span></i> as well as <i><span data-if="hdevelop" style="display:inline">'max_clutter'</span><span data-if="c" style="display:none">"max_clutter"</span><span data-if="cpp" style="display:none">"max_clutter"</span><span data-if="com" style="display:none">"max_clutter"</span><span data-if="dotnet" style="display:none">"max_clutter"</span><span data-if="python" style="display:none">"max_clutter"</span></i> (if set) is as
follows:
</p>
<ul>
<li>
<p> No clutter set:</p>
<p>
In case there are more than <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i>
instances found with a required score, only the <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i>
instances with the highest scores are returned.</p>
<p>
In case there are less than <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> instances found
with a required score, only the instances fulfilling the score
requirement are returned.
</p>
</li>
<li>
<p> With clutter set:</p>
<p>
In case there are more than
<i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> instances found with a required score and an
allowed clutter score, only the <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> instances with
the best clutter score are returned.</p>
<p>
In case there are less than <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> instances found
with a required score and / or allowed clutter score, only the
instances fulfilling the score and clutter score requirement are
returned.
</p>
</li>
</ul>
<p>
Tracking matches through the image pyramid depends whether clutter is
set:
</p>
<ul>
<li>
<p> No clutter set:</p>
<p>
On each level less promising matches are rejected
based on <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i>.
By doing so matches may be rejected although they would have obtained
a higher score on the lowest pyramid level.
As a result the returned instance for e.g., <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> set
to <i>1</i> can differ from the instance with the highest score
returned when more matches are returned by setting
<i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> to <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i> or a value higher <i>1</i>.
This explains why it might be preferable to return several instances
and then select the instance with the highest score in case multiple
objects with a similar score are expected, but only the one with
the highest score is of interest.
</p>
</li>
<li>
<p> With clutter set:</p>
<p>
No matches are rejected during tracking.
As a result the runtime using clutter parameters will be at least as
high as the runtime without clutter parameters but returning all
matches, thus <i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> set to <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>.
</p>
</li>
</ul>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'strict_boundaries'</span><span data-if="c" style="display:none">"strict_boundaries"</span><span data-if="cpp" style="display:none">"strict_boundaries"</span><span data-if="com" style="display:none">"strict_boundaries"</span><span data-if="dotnet" style="display:none">"strict_boundaries"</span><span data-if="python" style="display:none">"strict_boundaries"</span></i>:</p>
<p>
Determines whether found instances are
only returned when they are strictly within the given search space
boundaries (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not (<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>).
Note that such a sort out appears after the reduction to the desired
<i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> matches and as a consequence may lead in extreme
cases to no returned match.</p>
<p>
<i>Compatibility:</i> Setting this value on a model not created by
<a href="create_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">create_generic_shape_model</span><span data-if="c" style="display:none">create_generic_shape_model</span><span data-if="cpp" style="display:none">CreateGenericShapeModel</span><span data-if="com" style="display:none">CreateGenericShapeModel</span><span data-if="dotnet" style="display:none">CreateGenericShapeModel</span><span data-if="python" style="display:none">create_generic_shape_model</span></code></a> will change internal model settings.
As a consequence, setting for such models <i><span data-if="hdevelop" style="display:inline">'strict_boundaries'</span><span data-if="c" style="display:none">"strict_boundaries"</span><span data-if="cpp" style="display:none">"strict_boundaries"</span><span data-if="com" style="display:none">"strict_boundaries"</span><span data-if="dotnet" style="display:none">"strict_boundaries"</span><span data-if="python" style="display:none">"strict_boundaries"</span></i>
to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> and back to <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> may result in a
different behavior regarding matches found outside the requested search
range.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i>:</p>
<p>
Determines by what fraction two instances
may overlap at most in order to be considered as different instances
and hence to be returned separately.
If two instances overlap each other by
more than <i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i> only the one with the higher score is
returned.
The calculation of the overlap is based on the smallest enclosing
rectangle of arbitrary orientation (see <a href="smallest_rectangle2.html"><code><span data-if="hdevelop" style="display:inline">smallest_rectangle2</span><span data-if="c" style="display:none">smallest_rectangle2</span><span data-if="cpp" style="display:none">SmallestRectangle2</span><span data-if="com" style="display:none">SmallestRectangle2</span><span data-if="dotnet" style="display:none">SmallestRectangle2</span><span data-if="python" style="display:none">smallest_rectangle2</span></code></a>)
of the found instances.
<i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i> set to <i>0</i> means the returned instances
may not overlap at all, while for <i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i> = <i>1</i>
all instances are returned, independent of possible overlapping.
For more information about <i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i>, we refer to the
<code>“Solution Guide II-B - Matching”</code>.</p>
<p>
<i>Restriction:</i> <i>0</i> <span title="7" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.894063em" viewBox="0 0 14.413971 14.305008">
<!-- Original BoundingBox: -7.206985 -7.152496 7.206985 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
</svg></span> <i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i>
<span title="8" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.894063em" viewBox="0 0 14.413971 14.305008">
<!-- Original BoundingBox: -7.206985 -7.152496 7.206985 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
</svg></span> <i>1</i>.</p>
<p>
<i>Default:</i> <i>0.5</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'max_overlap_global_enable'</span><span data-if="c" style="display:none">"max_overlap_global_enable"</span><span data-if="cpp" style="display:none">"max_overlap_global_enable"</span><span data-if="com" style="display:none">"max_overlap_global_enable"</span><span data-if="dotnet" style="display:none">"max_overlap_global_enable"</span><span data-if="python" style="display:none">"max_overlap_global_enable"</span></i>: </p>
<p>
Determines whether the overlap is computed for all found instances
regardless of the model (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not (<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>).
I.e., the overlap of an instance is computed to the found instances of all
models and a larger overlap leads to an elimination of this instance.
For detailed information on the overlap computation see
<i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i>.</p>
<p>
It is important to note that the global overlap is applied to all models
that are used in a search even if only one model has enabled
<i><span data-if="hdevelop" style="display:inline">'max_overlap_global_enable'</span><span data-if="c" style="display:none">"max_overlap_global_enable"</span><span data-if="cpp" style="display:none">"max_overlap_global_enable"</span><span data-if="com" style="display:none">"max_overlap_global_enable"</span><span data-if="dotnet" style="display:none">"max_overlap_global_enable"</span><span data-if="python" style="display:none">"max_overlap_global_enable"</span></i>.</p>
<p>
The value used for the maximum allowed global overlap is determined as the
minimum of the values set for <i><span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span></i> of all passed
models.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'max_clutter'</span><span data-if="c" style="display:none">"max_clutter"</span><span data-if="cpp" style="display:none">"max_clutter"</span><span data-if="com" style="display:none">"max_clutter"</span><span data-if="dotnet" style="display:none">"max_clutter"</span><span data-if="python" style="display:none">"max_clutter"</span></i>:</p>
<p>
Determines the maximal clutter score a
potential match can have to be regarded as model instance in the image.
Of course this applies only to models where clutter is considered, thus
<i><span data-if="hdevelop" style="display:inline">'use_clutter'</span><span data-if="c" style="display:none">"use_clutter"</span><span data-if="cpp" style="display:none">"use_clutter"</span><span data-if="com" style="display:none">"use_clutter"</span><span data-if="dotnet" style="display:none">"use_clutter"</span><span data-if="python" style="display:none">"use_clutter"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.</p>
<p>
<i>Default:</i> <i>0.0</i>.
</p>
</li>
</ul>

</li>
<li>
<p> <b>Gray Value Treatment</b>
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i>:</p>
<p>
Determines the minimal contrast
(gray value difference to neighboring pixels) a point in a search image
must at least have in order to be compared with the model.
The main use of this parameter is to exclude noise,
from the matching process. 该算子 <a href="estimate_noise.html"><code><span data-if="hdevelop" style="display:inline">estimate_noise</span><span data-if="c" style="display:none">estimate_noise</span><span data-if="cpp" style="display:none">EstimateNoise</span><span data-if="com" style="display:none">EstimateNoise</span><span data-if="dotnet" style="display:none">EstimateNoise</span><span data-if="python" style="display:none">estimate_noise</span></code></a> can be
used to assess the noise.</p>
<p>
<i>Example:</i> The gray values fluctuate within a range of 10 gray
levels. In this case it is advisable to set <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i>
= <i>10</i>.</p>
<p>
Multichannel images: For a search in a multichannel image using
<i><span data-if="hdevelop" style="display:inline">'metric'</span><span data-if="c" style="display:none">"metric"</span><span data-if="cpp" style="display:none">"metric"</span><span data-if="com" style="display:none">"metric"</span><span data-if="dotnet" style="display:none">"metric"</span><span data-if="python" style="display:none">"metric"</span></i> set to <i><span data-if="hdevelop" style="display:inline">'ignore_color_polarity'</span><span data-if="c" style="display:none">"ignore_color_polarity"</span><span data-if="cpp" style="display:none">"ignore_color_polarity"</span><span data-if="com" style="display:none">"ignore_color_polarity"</span><span data-if="dotnet" style="display:none">"ignore_color_polarity"</span><span data-if="python" style="display:none">"ignore_color_polarity"</span></i>, the noise
in one channel must be multiplied by the square root of the number of
channels to determine <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i>.</p>
<p>
<i>Example:</i> The gray values of a 3 channel image fluctuate
within a range of 10 gray levels in a single channel. In this case
it is advisable to set <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i> = <i>17</i>.</p>
<p>
Note, <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i> must be smaller than the contrast
threshold set using <i><span data-if="hdevelop" style="display:inline">'contrast_low'</span><span data-if="c" style="display:none">"contrast_low"</span><span data-if="cpp" style="display:none">"contrast_low"</span><span data-if="com" style="display:none">"contrast_low"</span><span data-if="dotnet" style="display:none">"contrast_low"</span><span data-if="python" style="display:none">"contrast_low"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'contrast_high'</span><span data-if="c" style="display:none">"contrast_high"</span><span data-if="cpp" style="display:none">"contrast_high"</span><span data-if="com" style="display:none">"contrast_high"</span><span data-if="dotnet" style="display:none">"contrast_high"</span><span data-if="python" style="display:none">"contrast_high"</span></i>, see above.</p>
<p>
The value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> means its value is estimated during the call
of <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a> based on the noise in the model
image.
Consequently, for a meaningful automatic determination the noise in the
model image must be similar to the one in the images used during
recognition.</p>
<p>
<i>Training</i>: Changing this value to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> necessitates
a training of the shape model.</p>
<p>
<i>Possible values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>10</i>, <i>20</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'border_shape_models'</span><span data-if="c" style="display:none">"border_shape_models"</span><span data-if="cpp" style="display:none">"border_shape_models"</span><span data-if="com" style="display:none">"border_shape_models"</span><span data-if="dotnet" style="display:none">"border_shape_models"</span><span data-if="python" style="display:none">"border_shape_models"</span></i>:</p>
<p>
Determines whether the shape model <a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a> to be found with,
e.g., <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>, may lie partially outside
the image (i.e., whether it may cross the image border, independent of
the domain).
The value <i><span data-if="hdevelop" style="display:inline">'system'</span><span data-if="c" style="display:none">"system"</span><span data-if="cpp" style="display:none">"system"</span><span data-if="com" style="display:none">"system"</span><span data-if="dotnet" style="display:none">"system"</span><span data-if="python" style="display:none">"system"</span></i> means the model uses the system-wide set
value set by <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a> for the parameter
<i><span data-if="hdevelop" style="display:inline">'border_shape_models'</span><span data-if="c" style="display:none">"border_shape_models"</span><span data-if="cpp" style="display:none">"border_shape_models"</span><span data-if="com" style="display:none">"border_shape_models"</span><span data-if="dotnet" style="display:none">"border_shape_models"</span><span data-if="python" style="display:none">"border_shape_models"</span></i>.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'system'</span><span data-if="c" style="display:none">"system"</span><span data-if="cpp" style="display:none">"system"</span><span data-if="com" style="display:none">"system"</span><span data-if="dotnet" style="display:none">"system"</span><span data-if="python" style="display:none">"system"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'system'</span><span data-if="c" style="display:none">"system"</span><span data-if="cpp" style="display:none">"system"</span><span data-if="com" style="display:none">"system"</span><span data-if="dotnet" style="display:none">"system"</span><span data-if="python" style="display:none">"system"</span></i>.
</p>
</li>
</ul>

</li>
<li>
<p> <b>Refinement</b>
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'subpixel'</span><span data-if="c" style="display:none">"subpixel"</span><span data-if="cpp" style="display:none">"subpixel"</span><span data-if="com" style="display:none">"subpixel"</span><span data-if="dotnet" style="display:none">"subpixel"</span><span data-if="python" style="display:none">"subpixel"</span></i>:</p>
<p>
Determines which type of subpixel refinement should be carried out.
Possible values:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'none'</span><span data-if="c" style="display:none">"none"</span><span data-if="cpp" style="display:none">"none"</span><span data-if="com" style="display:none">"none"</span><span data-if="dotnet" style="display:none">"none"</span><span data-if="python" style="display:none">"none"</span></i>: The pose of the model is only determined with pixel
accuracy and the angle resolution that was specified with
<i><span data-if="hdevelop" style="display:inline">'angle_step'</span><span data-if="c" style="display:none">"angle_step"</span><span data-if="cpp" style="display:none">"angle_step"</span><span data-if="com" style="display:none">"angle_step"</span><span data-if="dotnet" style="display:none">"angle_step"</span><span data-if="python" style="display:none">"angle_step"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'interpolation'</span><span data-if="c" style="display:none">"interpolation"</span><span data-if="cpp" style="display:none">"interpolation"</span><span data-if="com" style="display:none">"interpolation"</span><span data-if="dotnet" style="display:none">"interpolation"</span><span data-if="python" style="display:none">"interpolation"</span></i>: The pose of the model is interpolated
from the score function.
This mode features very low computation costs.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i>: The pose of the model is refined
using least squares adjustment, i.e., by minimizing the distances of the
model points to their corresponding image points.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'least_squares_high'</span><span data-if="c" style="display:none">"least_squares_high"</span><span data-if="cpp" style="display:none">"least_squares_high"</span><span data-if="com" style="display:none">"least_squares_high"</span><span data-if="dotnet" style="display:none">"least_squares_high"</span><span data-if="python" style="display:none">"least_squares_high"</span></i>: The pose of the model is refined
using least squares adjustment, i.e., by minimizing the distances of the
model points to their corresponding image points.
More minimization iterations are allowed than for
<i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i>, resulting in a possibly increased runtime.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'least_squares_very_high'</span><span data-if="c" style="display:none">"least_squares_very_high"</span><span data-if="cpp" style="display:none">"least_squares_very_high"</span><span data-if="com" style="display:none">"least_squares_very_high"</span><span data-if="dotnet" style="display:none">"least_squares_very_high"</span><span data-if="python" style="display:none">"least_squares_very_high"</span></i>: The pose of the model is refined
using least squares adjustment, i.e., by minimizing the distances of the
model points to their corresponding image points.
More minimization iterations are allowed than for
<i><span data-if="hdevelop" style="display:inline">'least_squares_high'</span><span data-if="c" style="display:none">"least_squares_high"</span><span data-if="cpp" style="display:none">"least_squares_high"</span><span data-if="com" style="display:none">"least_squares_high"</span><span data-if="dotnet" style="display:none">"least_squares_high"</span><span data-if="python" style="display:none">"least_squares_high"</span></i>, resulting in a possibly increased
runtime.
</p>
</li>
</ul>
<p>
The interplay with <i><span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span></i> is explained in the
description of latter one.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'greediness'</span><span data-if="c" style="display:none">"greediness"</span><span data-if="cpp" style="display:none">"greediness"</span><span data-if="com" style="display:none">"greediness"</span><span data-if="dotnet" style="display:none">"greediness"</span><span data-if="python" style="display:none">"greediness"</span></i>:</p>
<p>
Determines how “greedily” the search should be carried out.
A higher value results in a faster search but a less safe search
heuristic.</p>
<p>
<i>Restriction:</i> <i>0</i> <span title="9" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.894063em" viewBox="0 0 14.413971 14.305008">
<!-- Original BoundingBox: -7.206985 -7.152496 7.206985 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
</svg></span> <i><span data-if="hdevelop" style="display:inline">'greediness'</span><span data-if="c" style="display:none">"greediness"</span><span data-if="cpp" style="display:none">"greediness"</span><span data-if="com" style="display:none">"greediness"</span><span data-if="dotnet" style="display:none">"greediness"</span><span data-if="python" style="display:none">"greediness"</span></i>
<span title="10" style="vertical-align:-0.207493em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.900873em" height="0.894063em" viewBox="0 0 14.413971 14.305008">
<!-- Original BoundingBox: -7.206985 -7.152496 7.206985 7.152512 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_20">
      <path style="fill-rule: evenodd;" d="M675.000000 -594.000000C686.000000 -599.000000,694.000000 -604.000000,694.000000 -616.000000C694.000000 -627.000000,686.000000 -636.000000,674.000000 -636.000000C669.000000 -636.000000,660.000000 -632.000000,656.000000 -630.000000L103.000000 -369.000000C86.000000 -361.000000,83.000000 -354.000000,83.000000 -346.000000C83.000000 -337.000000,89.000000 -330.000000,103.000000 -324.000000L656.000000 -64.000000C669.000000 -57.000000,671.000000 -57.000000,674.000000 -57.000000C685.000000 -57.000000,694.000000 -66.000000,694.000000 -77.000000C694.000000 -86.000000,690.000000 -92.000000,673.000000 -100.000000L150.000000 -346.000000M659.000000 137.000000C676.000000 137.000000,694.000000 137.000000,694.000000 117.000000C694.000000 97.000000,673.000000 97.000000,658.000000 97.000000L119.000000 97.000000C104.000000 97.000000,83.000000 97.000000,83.000000 117.000000C83.000000 137.000000,101.000000 137.000000,118.000000 137.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.809006 10.985123)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmsy10_20"></use>
  </g>
</svg></span> <i>1</i>.</p>
<p>
<i>Default:</i> <i>0.9</i>.
</p>
</li>
</ul>

</li>
<li>
<p> <b>Image Pyramid</b>
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'pyramid_level_highest'</span><span data-if="c" style="display:none">"pyramid_level_highest"</span><span data-if="cpp" style="display:none">"pyramid_level_highest"</span><span data-if="com" style="display:none">"pyramid_level_highest"</span><span data-if="dotnet" style="display:none">"pyramid_level_highest"</span><span data-if="python" style="display:none">"pyramid_level_highest"</span></i>:</p>
<p>
Determines the highest level of the image pyramid used in the search.
This allows to lower the highest image pyramid level set by the model
uses during a search.
Its value can not be higher than the highest image pyramid level of the
model, which is set through <i><span data-if="hdevelop" style="display:inline">'num_levels'</span><span data-if="c" style="display:none">"num_levels"</span><span data-if="cpp" style="display:none">"num_levels"</span><span data-if="com" style="display:none">"num_levels"</span><span data-if="dotnet" style="display:none">"num_levels"</span><span data-if="python" style="display:none">"num_levels"</span></i>.
As a consequence, <i><span data-if="hdevelop" style="display:inline">'pyramid_level_highest'</span><span data-if="c" style="display:none">"pyramid_level_highest"</span><span data-if="cpp" style="display:none">"pyramid_level_highest"</span><span data-if="com" style="display:none">"pyramid_level_highest"</span><span data-if="dotnet" style="display:none">"pyramid_level_highest"</span><span data-if="python" style="display:none">"pyramid_level_highest"</span></i> is clipped.
The value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> means no lowering is applied, thus the model
uses the highest pyramid level set through <i><span data-if="hdevelop" style="display:inline">'num_levels'</span><span data-if="c" style="display:none">"num_levels"</span><span data-if="cpp" style="display:none">"num_levels"</span><span data-if="com" style="display:none">"num_levels"</span><span data-if="dotnet" style="display:none">"num_levels"</span><span data-if="python" style="display:none">"num_levels"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'pyramid_level_lowest'</span><span data-if="c" style="display:none">"pyramid_level_lowest"</span><span data-if="cpp" style="display:none">"pyramid_level_lowest"</span><span data-if="com" style="display:none">"pyramid_level_lowest"</span><span data-if="dotnet" style="display:none">"pyramid_level_lowest"</span><span data-if="python" style="display:none">"pyramid_level_lowest"</span></i>:</p>
<p>
Determines the lowest level of the image pyramid to which the found
matches are tracked.
Not tracking the matches down to the lowest level decreases the runtime
of the search. But in general the higher the lowest level, the lower the
accuracy of the extracted pose parameters.
In extreme cases this can even lead to finding wrong instances of that
the desired accuracy cannot be achieved.</p>
<p>
<i>Default:</i> <i>1</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'pyramid_level_robust_tracking'</span><span data-if="c" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="cpp" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="com" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="dotnet" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="python" style="display:none">"pyramid_level_robust_tracking"</span></i>:</p>
<p>
Determines whether the so-called “increased tolerance mode” is
active (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not (<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>).
In this mode the lowest image pyramid level on which at least one match
can be found is automatically determined during the search.
This mode can be helpful in case of input images of poor quality, e.g.,
defocused, deformed, or noisy images. In such cases the edge information
on the lowest image pyramid level may be missing or deformed and as a
consequence no instances of the shape model can be found.
Nevertheless, the edge information may be sufficient on higher pyramid
levels.
The selection of the suitable pyramid level, i.e., the lowest pyramid
level on which at least one instance of the shape model can be found,
depends on the model and on the input image.
Of course the restrictions on accuracy and robustness mentioned
for <i><span data-if="hdevelop" style="display:inline">'pyramid_level_lowest'</span><span data-if="c" style="display:none">"pyramid_level_lowest"</span><span data-if="cpp" style="display:none">"pyramid_level_lowest"</span><span data-if="com" style="display:none">"pyramid_level_lowest"</span><span data-if="dotnet" style="display:none">"pyramid_level_lowest"</span><span data-if="python" style="display:none">"pyramid_level_lowest"</span></i> occur.
<i>Example:</i> <i><span data-if="hdevelop" style="display:inline">'pyramid_level_highest'</span><span data-if="c" style="display:none">"pyramid_level_highest"</span><span data-if="cpp" style="display:none">"pyramid_level_highest"</span><span data-if="com" style="display:none">"pyramid_level_highest"</span><span data-if="dotnet" style="display:none">"pyramid_level_highest"</span><span data-if="python" style="display:none">"pyramid_level_highest"</span></i> is set to
<i>4</i>, <i><span data-if="hdevelop" style="display:inline">'pyramid_level_lowest'</span><span data-if="c" style="display:none">"pyramid_level_lowest"</span><span data-if="cpp" style="display:none">"pyramid_level_lowest"</span><span data-if="com" style="display:none">"pyramid_level_lowest"</span><span data-if="dotnet" style="display:none">"pyramid_level_lowest"</span><span data-if="python" style="display:none">"pyramid_level_lowest"</span></i> is set to <i>2</i>,
and <i><span data-if="hdevelop" style="display:inline">'pyramid_level_robust_tracking'</span><span data-if="c" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="cpp" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="com" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="dotnet" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="python" style="display:none">"pyramid_level_robust_tracking"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
Now the matching starts at the fourth pyramid level and tracks the
matches down to the second lowest pyramid level.
If no instance of the model can be found on the pyramid level 2, but
matches have been obtained at a higher level, the lowest pyramid level
is determined on which at least one instance of the model is found.
The instances of this pyramid level will then be returned.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.
</p>
</li>
</ul>

</li>
<li>
<p> <b>Clutter</b></p>
<p>
The following parameters are used to specify the clutter region. Note that
for this the clutter region has to be set beforehand using
<a href="set_generic_shape_model_object.html"><code><span data-if="hdevelop" style="display:inline">set_generic_shape_model_object</span><span data-if="c" style="display:none">set_generic_shape_model_object</span><span data-if="cpp" style="display:none">SetGenericShapeModelObject</span><span data-if="com" style="display:none">SetGenericShapeModelObject</span><span data-if="dotnet" style="display:none">SetGenericShapeModelObject</span><span data-if="python" style="display:none">set_generic_shape_model_object</span></code></a>.
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'use_clutter'</span><span data-if="c" style="display:none">"use_clutter"</span><span data-if="cpp" style="display:none">"use_clutter"</span><span data-if="com" style="display:none">"use_clutter"</span><span data-if="dotnet" style="display:none">"use_clutter"</span><span data-if="python" style="display:none">"use_clutter"</span></i>:</p>
<p>
Determines whether the model <a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a>
considers clutter parameters (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not (<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>).
The runtime using clutter parameters will be at least as high as the
runtime without clutter parameters but returning all matches, thus
<i><span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span></i> set to <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_contrast'</span><span data-if="c" style="display:none">"clutter_contrast"</span><span data-if="cpp" style="display:none">"clutter_contrast"</span><span data-if="com" style="display:none">"clutter_contrast"</span><span data-if="dotnet" style="display:none">"clutter_contrast"</span><span data-if="python" style="display:none">"clutter_contrast"</span></i>:</p>
<p>
Determines the minimal contrast which edges in the clutter region must
have in order to be counted as clutter.
</p>
<p>The polarity of the found clutter edges is ignored, i.e., bright objects
on a dark background will yield the same clutter score as dark objects
on a bright background, independent of the parameter <i><span data-if="hdevelop" style="display:inline">'metric'</span><span data-if="c" style="display:none">"metric"</span><span data-if="cpp" style="display:none">"metric"</span><span data-if="com" style="display:none">"metric"</span><span data-if="dotnet" style="display:none">"metric"</span><span data-if="python" style="display:none">"metric"</span></i>
of the shape model.
</p>
<p>For the value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i> the contrast will be estimated
automatically.
Note, a suitable estimation requires that the defining region is
representative.
We recommend to check if the estimated value is suitable and adapt it
otherwise.
</p>
<p>Please note that clutter scores are strongly affected by
illumination variations.
</p>
<p><i>Possible values:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i>5</i>, <i>10</i>.</p>
<p>
<i>Restriction:</i> <i><span data-if="hdevelop" style="display:inline">'clutter_contrast'</span><span data-if="c" style="display:none">"clutter_contrast"</span><span data-if="cpp" style="display:none">"clutter_contrast"</span><span data-if="com" style="display:none">"clutter_contrast"</span><span data-if="dotnet" style="display:none">"clutter_contrast"</span><span data-if="python" style="display:none">"clutter_contrast"</span></i> must be larger or
equal to <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.</p>
<p>
<i>Attention:</i> A suitable automatic estimation is not possible for
shape models generated from XLD contours. Therefore, in such a case
the estimated value is set to <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i>,
see also the section “Automatic modifications” below.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'max_clutter'</span><span data-if="c" style="display:none">"max_clutter"</span><span data-if="cpp" style="display:none">"max_clutter"</span><span data-if="com" style="display:none">"max_clutter"</span><span data-if="dotnet" style="display:none">"max_clutter"</span><span data-if="python" style="display:none">"max_clutter"</span></i>:</p>
<p>
The value <i><span data-if="hdevelop" style="display:inline">'max_clutter'</span><span data-if="c" style="display:none">"max_clutter"</span><span data-if="cpp" style="display:none">"max_clutter"</span><span data-if="com" style="display:none">"max_clutter"</span><span data-if="dotnet" style="display:none">"max_clutter"</span><span data-if="python" style="display:none">"max_clutter"</span></i> specifies the maximum clutter
score that a match can have in order to be accepted.
</p>
<p>Note, the value of this parameter has no effect on the runtime.</p>
<p>
<i>Value range:</i> [<i>0.0</i>, <i>1.0</i>].</p>
<p>
<i>Default:</i> <i>0.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_hom_mat_2d'</span><span data-if="c" style="display:none">"clutter_hom_mat_2d"</span><span data-if="cpp" style="display:none">"clutter_hom_mat_2d"</span><span data-if="com" style="display:none">"clutter_hom_mat_2d"</span><span data-if="dotnet" style="display:none">"clutter_hom_mat_2d"</span><span data-if="python" style="display:none">"clutter_hom_mat_2d"</span></i>:</p>
<p>
The clutter region is set relative to the model.
The transformation matrix <i><span data-if="hdevelop" style="display:inline">'clutter_hom_mat_2d'</span><span data-if="c" style="display:none">"clutter_hom_mat_2d"</span><span data-if="cpp" style="display:none">"clutter_hom_mat_2d"</span><span data-if="com" style="display:none">"clutter_hom_mat_2d"</span><span data-if="dotnet" style="display:none">"clutter_hom_mat_2d"</span><span data-if="python" style="display:none">"clutter_hom_mat_2d"</span></i> maps
the model origin to the position of the model instance
(or rather its center of gravity)
in the image when the clutter region has been set using
<a href="set_generic_shape_model_object.html"><code><span data-if="hdevelop" style="display:inline">set_generic_shape_model_object</span><span data-if="c" style="display:none">set_generic_shape_model_object</span><span data-if="cpp" style="display:none">SetGenericShapeModelObject</span><span data-if="com" style="display:none">SetGenericShapeModelObject</span><span data-if="dotnet" style="display:none">SetGenericShapeModelObject</span><span data-if="python" style="display:none">set_generic_shape_model_object</span></code></a>.
</p>
<p><i>Possible values:</i></p>

<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>: Value is estimated automatically.
The clutter region is set relative to the model in the template image
used by <a href="set_generic_shape_model_object.html"><code><span data-if="hdevelop" style="display:inline">set_generic_shape_model_object</span><span data-if="c" style="display:none">set_generic_shape_model_object</span><span data-if="cpp" style="display:none">SetGenericShapeModelObject</span><span data-if="com" style="display:none">SetGenericShapeModelObject</span><span data-if="dotnet" style="display:none">SetGenericShapeModelObject</span><span data-if="python" style="display:none">set_generic_shape_model_object</span></code></a>.
</p>
</li>
<li>
<p> Transformation matrix: Transformation is given by the user.
</p>
</li>
</ul>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_border_mode'</span><span data-if="c" style="display:none">"clutter_border_mode"</span><span data-if="cpp" style="display:none">"clutter_border_mode"</span><span data-if="com" style="display:none">"clutter_border_mode"</span><span data-if="dotnet" style="display:none">"clutter_border_mode"</span><span data-if="python" style="display:none">"clutter_border_mode"</span></i>:</p>
<p>
With <i><span data-if="hdevelop" style="display:inline">'clutter_border_mode'</span><span data-if="c" style="display:none">"clutter_border_mode"</span><span data-if="cpp" style="display:none">"clutter_border_mode"</span><span data-if="com" style="display:none">"clutter_border_mode"</span><span data-if="dotnet" style="display:none">"clutter_border_mode"</span><span data-if="python" style="display:none">"clutter_border_mode"</span></i> the behavior of the clutter score
can be influenced in cases where the clutter region of a found match
is not entirely contained in the image domain. The corresponding
values for <i><span data-if="hdevelop" style="display:inline">'clutter_border_mode'</span><span data-if="c" style="display:none">"clutter_border_mode"</span><span data-if="cpp" style="display:none">"clutter_border_mode"</span><span data-if="com" style="display:none">"clutter_border_mode"</span><span data-if="dotnet" style="display:none">"clutter_border_mode"</span><span data-if="python" style="display:none">"clutter_border_mode"</span></i> are:
</p>
<ul>

<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_border_average'</span><span data-if="c" style="display:none">"clutter_border_average"</span><span data-if="cpp" style="display:none">"clutter_border_average"</span><span data-if="com" style="display:none">"clutter_border_average"</span><span data-if="dotnet" style="display:none">"clutter_border_average"</span><span data-if="python" style="display:none">"clutter_border_average"</span></i>:
</p>
<p>When <i><span data-if="hdevelop" style="display:inline">'clutter_border_average'</span><span data-if="c" style="display:none">"clutter_border_average"</span><span data-if="cpp" style="display:none">"clutter_border_average"</span><span data-if="com" style="display:none">"clutter_border_average"</span><span data-if="dotnet" style="display:none">"clutter_border_average"</span><span data-if="python" style="display:none">"clutter_border_average"</span></i> is set, the hidden
part of the clutter region is assumed to be filled on average as is
its visible part. If the clutter region is not visible at all,
the clutter score of the found match is set to <i>0.0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_border_empty'</span><span data-if="c" style="display:none">"clutter_border_empty"</span><span data-if="cpp" style="display:none">"clutter_border_empty"</span><span data-if="com" style="display:none">"clutter_border_empty"</span><span data-if="dotnet" style="display:none">"clutter_border_empty"</span><span data-if="python" style="display:none">"clutter_border_empty"</span></i>:
</p>
<p>When <i><span data-if="hdevelop" style="display:inline">'clutter_border_empty'</span><span data-if="c" style="display:none">"clutter_border_empty"</span><span data-if="cpp" style="display:none">"clutter_border_empty"</span><span data-if="com" style="display:none">"clutter_border_empty"</span><span data-if="dotnet" style="display:none">"clutter_border_empty"</span><span data-if="python" style="display:none">"clutter_border_empty"</span></i> is set, the clutter region is
assumed to be clutter-free where it is not visible.
</p>
</li>
</ul>

<p>Note that <i><span data-if="hdevelop" style="display:inline">'clutter_border_average'</span><span data-if="c" style="display:none">"clutter_border_average"</span><span data-if="cpp" style="display:none">"clutter_border_average"</span><span data-if="com" style="display:none">"clutter_border_average"</span><span data-if="dotnet" style="display:none">"clutter_border_average"</span><span data-if="python" style="display:none">"clutter_border_average"</span></i> may result in higher clutter
scores than <i><span data-if="hdevelop" style="display:inline">'clutter_border_empty'</span><span data-if="c" style="display:none">"clutter_border_empty"</span><span data-if="cpp" style="display:none">"clutter_border_empty"</span><span data-if="com" style="display:none">"clutter_border_empty"</span><span data-if="dotnet" style="display:none">"clutter_border_empty"</span><span data-if="python" style="display:none">"clutter_border_empty"</span></i> even if the match is not
located at the border of the image domain.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'clutter_border_average'</span><span data-if="c" style="display:none">"clutter_border_average"</span><span data-if="cpp" style="display:none">"clutter_border_average"</span><span data-if="com" style="display:none">"clutter_border_average"</span><span data-if="dotnet" style="display:none">"clutter_border_average"</span><span data-if="python" style="display:none">"clutter_border_average"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'clutter_border_empty'</span><span data-if="c" style="display:none">"clutter_border_empty"</span><span data-if="cpp" style="display:none">"clutter_border_empty"</span><span data-if="com" style="display:none">"clutter_border_empty"</span><span data-if="dotnet" style="display:none">"clutter_border_empty"</span><span data-if="python" style="display:none">"clutter_border_empty"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'clutter_border_average'</span><span data-if="c" style="display:none">"clutter_border_average"</span><span data-if="cpp" style="display:none">"clutter_border_average"</span><span data-if="com" style="display:none">"clutter_border_average"</span><span data-if="dotnet" style="display:none">"clutter_border_average"</span><span data-if="python" style="display:none">"clutter_border_average"</span></i>.
</p>
</li>
</ul>

</li>
<li>
<p> <b>Regarding the Output</b>
</p>
<ul>
<li>
<p> Origin:</p>
<p>
The origin (reference point) is specified relative to the center of
gravity of the domain (region) of the image that was used to train the
shape model with <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a>.
Hence, an origin of (0,0) means that the center of gravity of the domain
of the template image is used as the origin.
The origin can be set to a new value using the following parameters:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'origin_row'</span><span data-if="c" style="display:none">"origin_row"</span><span data-if="cpp" style="display:none">"origin_row"</span><span data-if="com" style="display:none">"origin_row"</span><span data-if="dotnet" style="display:none">"origin_row"</span><span data-if="python" style="display:none">"origin_row"</span></i>: Determines the column coordinate of a
new, shifted center of origin.</p>
<p>
<i>Default:</i> <i>0</i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'origin_column'</span><span data-if="c" style="display:none">"origin_column"</span><span data-if="cpp" style="display:none">"origin_column"</span><span data-if="com" style="display:none">"origin_column"</span><span data-if="dotnet" style="display:none">"origin_column"</span><span data-if="python" style="display:none">"origin_column"</span></i>: Determines the column coordinate of a
new, shifted center of origin.</p>
<p>
<i>Default:</i> <i>0</i>.
</p>
</li>
</ul>
<p>
<i>Example:</i> Setting <i><span data-if="hdevelop" style="display:inline">'origin_column'</span><span data-if="c" style="display:none">"origin_column"</span><span data-if="cpp" style="display:none">"origin_column"</span><span data-if="com" style="display:none">"origin_column"</span><span data-if="dotnet" style="display:none">"origin_column"</span><span data-if="python" style="display:none">"origin_column"</span></i> = <i>-20</i>
and <i><span data-if="hdevelop" style="display:inline">'origin_row'</span><span data-if="c" style="display:none">"origin_row"</span><span data-if="cpp" style="display:none">"origin_row"</span><span data-if="com" style="display:none">"origin_row"</span><span data-if="dotnet" style="display:none">"origin_row"</span><span data-if="python" style="display:none">"origin_row"</span></i> = <i>-40</i> results in a new origin lying
in the upper left of the center of gravity of the model. Please note
that changing the origin influences the used transformation matrices,
i.e., the <i><span data-if="hdevelop" style="display:inline">'clutter_hom_mat_2d'</span><span data-if="c" style="display:none">"clutter_hom_mat_2d"</span><span data-if="cpp" style="display:none">"clutter_hom_mat_2d"</span><span data-if="com" style="display:none">"clutter_hom_mat_2d"</span><span data-if="dotnet" style="display:none">"clutter_hom_mat_2d"</span><span data-if="python" style="display:none">"clutter_hom_mat_2d"</span></i> set by the user and the calculated
<i><span data-if="hdevelop" style="display:inline">'hom_mat_2d'</span><span data-if="c" style="display:none">"hom_mat_2d"</span><span data-if="cpp" style="display:none">"hom_mat_2d"</span><span data-if="com" style="display:none">"hom_mat_2d"</span><span data-if="dotnet" style="display:none">"hom_mat_2d"</span><span data-if="python" style="display:none">"hom_mat_2d"</span></i> of a match.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'prepare_contours_for_visualization'</span><span data-if="c" style="display:none">"prepare_contours_for_visualization"</span><span data-if="cpp" style="display:none">"prepare_contours_for_visualization"</span><span data-if="com" style="display:none">"prepare_contours_for_visualization"</span><span data-if="dotnet" style="display:none">"prepare_contours_for_visualization"</span><span data-if="python" style="display:none">"prepare_contours_for_visualization"</span></i></p>
<p>
Determines whether a found contour of a match should be prepared in
<a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a> and returned in
<code><span data-if="hdevelop" style="display:inline">MatchResultID</span><span data-if="c" style="display:none">MatchResultID</span><span data-if="cpp" style="display:none">MatchResultID</span><span data-if="com" style="display:none">MatchResultID</span><span data-if="dotnet" style="display:none">matchResultID</span><span data-if="python" style="display:none">match_result_id</span></code> (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not (<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>).
Deactivating <i><span data-if="hdevelop" style="display:inline">'prepare_contours_for_visualization'</span><span data-if="c" style="display:none">"prepare_contours_for_visualization"</span><span data-if="cpp" style="display:none">"prepare_contours_for_visualization"</span><span data-if="com" style="display:none">"prepare_contours_for_visualization"</span><span data-if="dotnet" style="display:none">"prepare_contours_for_visualization"</span><span data-if="python" style="display:none">"prepare_contours_for_visualization"</span></i> decreases the
runtime.
For how to query the generated contour, see the documentation of
<a href="get_generic_shape_model_result_object.html"><code><span data-if="hdevelop" style="display:inline">get_generic_shape_model_result_object</span><span data-if="c" style="display:none">get_generic_shape_model_result_object</span><span data-if="cpp" style="display:none">GetGenericShapeModelResultObject</span><span data-if="com" style="display:none">GetGenericShapeModelResultObject</span><span data-if="dotnet" style="display:none">GetGenericShapeModelResultObject</span><span data-if="python" style="display:none">get_generic_shape_model_result_object</span></code></a>.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'prepare_clutter_region_for_visualization'</span><span data-if="c" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="cpp" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="com" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="dotnet" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="python" style="display:none">"prepare_clutter_region_for_visualization"</span></i></p>
<p>
Determines whether the clutter region of a match should be prepared in
<a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a> and returned in
<code><span data-if="hdevelop" style="display:inline">MatchResultID</span><span data-if="c" style="display:none">MatchResultID</span><span data-if="cpp" style="display:none">MatchResultID</span><span data-if="com" style="display:none">MatchResultID</span><span data-if="dotnet" style="display:none">matchResultID</span><span data-if="python" style="display:none">match_result_id</span></code> (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not (<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>).
Deactivating <i><span data-if="hdevelop" style="display:inline">'prepare_clutter_region_for_visualization'</span><span data-if="c" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="cpp" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="com" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="dotnet" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="python" style="display:none">"prepare_clutter_region_for_visualization"</span></i>
decreases the runtime.
For how to query the generated clutter region, see the documentation of
<a href="get_generic_shape_model_result_object.html"><code><span data-if="hdevelop" style="display:inline">get_generic_shape_model_result_object</span><span data-if="c" style="display:none">get_generic_shape_model_result_object</span><span data-if="cpp" style="display:none">GetGenericShapeModelResultObject</span><span data-if="com" style="display:none">GetGenericShapeModelResultObject</span><span data-if="dotnet" style="display:none">GetGenericShapeModelResultObject</span><span data-if="python" style="display:none">get_generic_shape_model_result_object</span></code></a>.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'time_measurement'</span><span data-if="c" style="display:none">"time_measurement"</span><span data-if="cpp" style="display:none">"time_measurement"</span><span data-if="com" style="display:none">"time_measurement"</span><span data-if="dotnet" style="display:none">"time_measurement"</span><span data-if="python" style="display:none">"time_measurement"</span></i></p>
<p>
Determines whether during the search, the time spent in
individual parts should be measured.
The individual times are returned in <code><span data-if="hdevelop" style="display:inline">MatchResultID</span><span data-if="c" style="display:none">MatchResultID</span><span data-if="cpp" style="display:none">MatchResultID</span><span data-if="com" style="display:none">MatchResultID</span><span data-if="dotnet" style="display:none">matchResultID</span><span data-if="python" style="display:none">match_result_id</span></code>,
see <a href="get_generic_shape_model_result.html"><code><span data-if="hdevelop" style="display:inline">get_generic_shape_model_result</span><span data-if="c" style="display:none">get_generic_shape_model_result</span><span data-if="cpp" style="display:none">GetGenericShapeModelResult</span><span data-if="com" style="display:none">GetGenericShapeModelResult</span><span data-if="dotnet" style="display:none">GetGenericShapeModelResult</span><span data-if="python" style="display:none">get_generic_shape_model_result</span></code></a>.</p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'pipeline'</span><span data-if="c" style="display:none">"pipeline"</span><span data-if="cpp" style="display:none">"pipeline"</span><span data-if="com" style="display:none">"pipeline"</span><span data-if="dotnet" style="display:none">"pipeline"</span><span data-if="python" style="display:none">"pipeline"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.
</p>
</li>
</ul>
</li>
</ol>
<h3>Computational Resources during a Search</h3>
<p>In this paragraph we list parameters concerning technical influences when
searching the model <a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a>.
Supported <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> are:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'model_cache'</span><span data-if="c" style="display:none">"model_cache"</span><span data-if="cpp" style="display:none">"model_cache"</span><span data-if="com" style="display:none">"model_cache"</span><span data-if="dotnet" style="display:none">"model_cache"</span><span data-if="python" style="display:none">"model_cache"</span></i>:</p>
<p>
Determines whether an internal
cache based on temporary memory is used (<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>) or not
<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> during e.g., <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>.
Switching the <i><span data-if="hdevelop" style="display:inline">'model_cache'</span><span data-if="c" style="display:none">"model_cache"</span><span data-if="cpp" style="display:none">"model_cache"</span><span data-if="com" style="display:none">"model_cache"</span><span data-if="dotnet" style="display:none">"model_cache"</span><span data-if="python" style="display:none">"model_cache"</span></i> off (by setting <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>)
sometimes results in slightly longer execution times but constantly
smaller memory footprint.</p>
<p>
The size of the cache depends on the search space, thus if the search
space contains many discretization steps.
This means a fine search grid with small <code>step</code> values covering
large ranges for <code>start</code> to <code>end</code> values results in a large
memory consumption.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i>:</p>
<p>
Determines the maximum runtime of 该算子s
used to find the shape model <a href="#ModelID"><i><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></i></a>
(e.g., <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>).
The temporal accuracy depends on several factors including the size of
the model, the speed of the used computer, and the <i><span data-if="hdevelop" style="display:inline">'timer_mode'</span><span data-if="c" style="display:none">"timer_mode"</span><span data-if="cpp" style="display:none">"timer_mode"</span><span data-if="com" style="display:none">"timer_mode"</span><span data-if="dotnet" style="display:none">"timer_mode"</span><span data-if="python" style="display:none">"timer_mode"</span></i>
set via <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a>.
Be aware that the runtime of the search increases by up to 10 percent with
activated timeout.</p>
<p>
The value for <i><span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span></i> must be given in milliseconds.
To disable the timeout you can either use a negative value or
<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<i>Possible values:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i>-1</i>, <i>100</i>.</p>
<p>
<i>Default:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.
</p>
</li>
</ul>
<h3>Automatic modifications</h3>
<p>The following parameters are subject to automatic modifications without
further notice:
</p>
<ul>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'num_levels'</span><span data-if="c" style="display:none">"num_levels"</span><span data-if="cpp" style="display:none">"num_levels"</span><span data-if="com" style="display:none">"num_levels"</span><span data-if="dotnet" style="display:none">"num_levels"</span><span data-if="python" style="display:none">"num_levels"</span></i>:</p>
<p>
If a number of levels is set such that on the
asked levels not enough model points are generated, the number of pyramid
levels is reduced internally until enough model points are found on the
highest pyramid level.</p>
<p>
If this procedure would lead to a model with no pyramid levels, i.e.,
if the number of model points is already too small on the lowest pyramid
level, <a href="train_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></code></a> returns with an error message.
</p>
</li>
<li>
<p> Parameters determining a <i>step_size</i>:</p>
<p>
In case the range is not a multiple of the <i>step_size</i>, latter one
is modified accordingly.</p>
<p>
<i>Examples:</i> <i><span data-if="hdevelop" style="display:inline">'angle_step'</span><span data-if="c" style="display:none">"angle_step"</span><span data-if="cpp" style="display:none">"angle_step"</span><span data-if="com" style="display:none">"angle_step"</span><span data-if="dotnet" style="display:none">"angle_step"</span><span data-if="python" style="display:none">"angle_step"</span></i>, <i><span data-if="hdevelop" style="display:inline">'iso_scale_step'</span><span data-if="c" style="display:none">"iso_scale_step"</span><span data-if="cpp" style="display:none">"iso_scale_step"</span><span data-if="com" style="display:none">"iso_scale_step"</span><span data-if="dotnet" style="display:none">"iso_scale_step"</span><span data-if="python" style="display:none">"iso_scale_step"</span></i>.
</p>
</li>
<li>
<p> <code>start</code> and <code>end</code> value of a specified range:</p>
<p>
To ensure that for model instances in the exact model position are
returned by <a href="find_generic_shape_model.html"><code><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></code></a>, ranges may modified as
follows:
If there is no positive integer value n such that the <i>start</i> value
plus n times the <i>step_size</i> gives 0.0 (for angles) and
1.0 (for scalings), respectively, the <i>start</i> value is decreased by
up to one <code>step_size</code> and the <i>end</i> value increased such that
the total range is increased by exactly
one <code>step_size</code>.</p>
<p>
<i>Examples:</i> <i><span data-if="hdevelop" style="display:inline">'angle_start'</span><span data-if="c" style="display:none">"angle_start"</span><span data-if="cpp" style="display:none">"angle_start"</span><span data-if="com" style="display:none">"angle_start"</span><span data-if="dotnet" style="display:none">"angle_start"</span><span data-if="python" style="display:none">"angle_start"</span></i>, <i><span data-if="hdevelop" style="display:inline">'restrict_iso_scale_max'</span><span data-if="c" style="display:none">"restrict_iso_scale_max"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_max"</span><span data-if="com" style="display:none">"restrict_iso_scale_max"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_max"</span><span data-if="python" style="display:none">"restrict_iso_scale_max"</span></i>.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_hom_mat_2d'</span><span data-if="c" style="display:none">"clutter_hom_mat_2d"</span><span data-if="cpp" style="display:none">"clutter_hom_mat_2d"</span><span data-if="com" style="display:none">"clutter_hom_mat_2d"</span><span data-if="dotnet" style="display:none">"clutter_hom_mat_2d"</span><span data-if="python" style="display:none">"clutter_hom_mat_2d"</span></i>: Changing the origin
(<i><span data-if="hdevelop" style="display:inline">'origin_row'</span><span data-if="c" style="display:none">"origin_row"</span><span data-if="cpp" style="display:none">"origin_row"</span><span data-if="com" style="display:none">"origin_row"</span><span data-if="dotnet" style="display:none">"origin_row"</span><span data-if="python" style="display:none">"origin_row"</span></i> and <i><span data-if="hdevelop" style="display:inline">'origin_column'</span><span data-if="c" style="display:none">"origin_column"</span><span data-if="cpp" style="display:none">"origin_column"</span><span data-if="com" style="display:none">"origin_column"</span><span data-if="dotnet" style="display:none">"origin_column"</span><span data-if="python" style="display:none">"origin_column"</span></i>)
influences the used transformation matrices, i.e., the
<i><span data-if="hdevelop" style="display:inline">'clutter_hom_mat_2d'</span><span data-if="c" style="display:none">"clutter_hom_mat_2d"</span><span data-if="cpp" style="display:none">"clutter_hom_mat_2d"</span><span data-if="com" style="display:none">"clutter_hom_mat_2d"</span><span data-if="dotnet" style="display:none">"clutter_hom_mat_2d"</span><span data-if="python" style="display:none">"clutter_hom_mat_2d"</span></i> set by the user.
</p>
</li>
<li>
<p> <i><span data-if="hdevelop" style="display:inline">'clutter_contrast'</span><span data-if="c" style="display:none">"clutter_contrast"</span><span data-if="cpp" style="display:none">"clutter_contrast"</span><span data-if="com" style="display:none">"clutter_contrast"</span><span data-if="dotnet" style="display:none">"clutter_contrast"</span><span data-if="python" style="display:none">"clutter_contrast"</span></i>: If <i><span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span></i> is changed
such that it gets bigger than <i><span data-if="hdevelop" style="display:inline">'clutter_contrast'</span><span data-if="c" style="display:none">"clutter_contrast"</span><span data-if="cpp" style="display:none">"clutter_contrast"</span><span data-if="com" style="display:none">"clutter_contrast"</span><span data-if="dotnet" style="display:none">"clutter_contrast"</span><span data-if="python" style="display:none">"clutter_contrast"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'clutter_contrast'</span><span data-if="c" style="display:none">"clutter_contrast"</span><span data-if="cpp" style="display:none">"clutter_contrast"</span><span data-if="com" style="display:none">"clutter_contrast"</span><span data-if="dotnet" style="display:none">"clutter_contrast"</span><span data-if="python" style="display:none">"clutter_contrast"</span></i> is increased if the user set the
value <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</li>
</ul>
<p>Note that the transformations are treated internally such that the
scalings are applied first, followed by the rotation.  Therefore,
the model should usually be aligned such that it appears
horizontally or vertically in the model image.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator modifies the state of the following input parameter:</p>
<ul><li><a href="#ModelID"><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></a></li></ul>
<p>During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="ModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ModelID</span><span data-if="c" style="display:none">ModelID</span><span data-if="cpp" style="display:none">ModelID</span><span data-if="com" style="display:none">ModelID</span><span data-if="dotnet" style="display:none">modelID</span><span data-if="python" style="display:none">model_id</span></code></b> (input_control, state is modified)  </span><span>shape_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HShapeModel.html">HShapeModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the shape model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Parameter name.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'min_score'</span>
    <span data-if="c" style="display:none">"min_score"</span>
    <span data-if="cpp" style="display:none">"min_score"</span>
    <span data-if="com" style="display:none">"min_score"</span>
    <span data-if="dotnet" style="display:none">"min_score"</span>
    <span data-if="python" style="display:none">"min_score"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'angle_end'</span><span data-if="c" style="display:none">"angle_end"</span><span data-if="cpp" style="display:none">"angle_end"</span><span data-if="com" style="display:none">"angle_end"</span><span data-if="dotnet" style="display:none">"angle_end"</span><span data-if="python" style="display:none">"angle_end"</span>, <span data-if="hdevelop" style="display:inline">'angle_start'</span><span data-if="c" style="display:none">"angle_start"</span><span data-if="cpp" style="display:none">"angle_start"</span><span data-if="com" style="display:none">"angle_start"</span><span data-if="dotnet" style="display:none">"angle_start"</span><span data-if="python" style="display:none">"angle_start"</span>, <span data-if="hdevelop" style="display:inline">'angle_step'</span><span data-if="c" style="display:none">"angle_step"</span><span data-if="cpp" style="display:none">"angle_step"</span><span data-if="com" style="display:none">"angle_step"</span><span data-if="dotnet" style="display:none">"angle_step"</span><span data-if="python" style="display:none">"angle_step"</span>, <span data-if="hdevelop" style="display:inline">'border_shape_models'</span><span data-if="c" style="display:none">"border_shape_models"</span><span data-if="cpp" style="display:none">"border_shape_models"</span><span data-if="com" style="display:none">"border_shape_models"</span><span data-if="dotnet" style="display:none">"border_shape_models"</span><span data-if="python" style="display:none">"border_shape_models"</span>, <span data-if="hdevelop" style="display:inline">'clutter_border_mode'</span><span data-if="c" style="display:none">"clutter_border_mode"</span><span data-if="cpp" style="display:none">"clutter_border_mode"</span><span data-if="com" style="display:none">"clutter_border_mode"</span><span data-if="dotnet" style="display:none">"clutter_border_mode"</span><span data-if="python" style="display:none">"clutter_border_mode"</span>, <span data-if="hdevelop" style="display:inline">'clutter_contrast'</span><span data-if="c" style="display:none">"clutter_contrast"</span><span data-if="cpp" style="display:none">"clutter_contrast"</span><span data-if="com" style="display:none">"clutter_contrast"</span><span data-if="dotnet" style="display:none">"clutter_contrast"</span><span data-if="python" style="display:none">"clutter_contrast"</span>, <span data-if="hdevelop" style="display:inline">'clutter_hom_mat_2d'</span><span data-if="c" style="display:none">"clutter_hom_mat_2d"</span><span data-if="cpp" style="display:none">"clutter_hom_mat_2d"</span><span data-if="com" style="display:none">"clutter_hom_mat_2d"</span><span data-if="dotnet" style="display:none">"clutter_hom_mat_2d"</span><span data-if="python" style="display:none">"clutter_hom_mat_2d"</span>, <span data-if="hdevelop" style="display:inline">'contrast_high'</span><span data-if="c" style="display:none">"contrast_high"</span><span data-if="cpp" style="display:none">"contrast_high"</span><span data-if="com" style="display:none">"contrast_high"</span><span data-if="dotnet" style="display:none">"contrast_high"</span><span data-if="python" style="display:none">"contrast_high"</span>, <span data-if="hdevelop" style="display:inline">'contrast_low'</span><span data-if="c" style="display:none">"contrast_low"</span><span data-if="cpp" style="display:none">"contrast_low"</span><span data-if="com" style="display:none">"contrast_low"</span><span data-if="dotnet" style="display:none">"contrast_low"</span><span data-if="python" style="display:none">"contrast_low"</span>, <span data-if="hdevelop" style="display:inline">'greediness'</span><span data-if="c" style="display:none">"greediness"</span><span data-if="cpp" style="display:none">"greediness"</span><span data-if="com" style="display:none">"greediness"</span><span data-if="dotnet" style="display:none">"greediness"</span><span data-if="python" style="display:none">"greediness"</span>, <span data-if="hdevelop" style="display:inline">'iso_scale_max'</span><span data-if="c" style="display:none">"iso_scale_max"</span><span data-if="cpp" style="display:none">"iso_scale_max"</span><span data-if="com" style="display:none">"iso_scale_max"</span><span data-if="dotnet" style="display:none">"iso_scale_max"</span><span data-if="python" style="display:none">"iso_scale_max"</span>, <span data-if="hdevelop" style="display:inline">'iso_scale_min'</span><span data-if="c" style="display:none">"iso_scale_min"</span><span data-if="cpp" style="display:none">"iso_scale_min"</span><span data-if="com" style="display:none">"iso_scale_min"</span><span data-if="dotnet" style="display:none">"iso_scale_min"</span><span data-if="python" style="display:none">"iso_scale_min"</span>, <span data-if="hdevelop" style="display:inline">'iso_scale_step'</span><span data-if="c" style="display:none">"iso_scale_step"</span><span data-if="cpp" style="display:none">"iso_scale_step"</span><span data-if="com" style="display:none">"iso_scale_step"</span><span data-if="dotnet" style="display:none">"iso_scale_step"</span><span data-if="python" style="display:none">"iso_scale_step"</span>, <span data-if="hdevelop" style="display:inline">'max_clutter'</span><span data-if="c" style="display:none">"max_clutter"</span><span data-if="cpp" style="display:none">"max_clutter"</span><span data-if="com" style="display:none">"max_clutter"</span><span data-if="dotnet" style="display:none">"max_clutter"</span><span data-if="python" style="display:none">"max_clutter"</span>, <span data-if="hdevelop" style="display:inline">'max_deformation'</span><span data-if="c" style="display:none">"max_deformation"</span><span data-if="cpp" style="display:none">"max_deformation"</span><span data-if="com" style="display:none">"max_deformation"</span><span data-if="dotnet" style="display:none">"max_deformation"</span><span data-if="python" style="display:none">"max_deformation"</span>, <span data-if="hdevelop" style="display:inline">'max_overlap'</span><span data-if="c" style="display:none">"max_overlap"</span><span data-if="cpp" style="display:none">"max_overlap"</span><span data-if="com" style="display:none">"max_overlap"</span><span data-if="dotnet" style="display:none">"max_overlap"</span><span data-if="python" style="display:none">"max_overlap"</span>, <span data-if="hdevelop" style="display:inline">'max_overlap_global_enable'</span><span data-if="c" style="display:none">"max_overlap_global_enable"</span><span data-if="cpp" style="display:none">"max_overlap_global_enable"</span><span data-if="com" style="display:none">"max_overlap_global_enable"</span><span data-if="dotnet" style="display:none">"max_overlap_global_enable"</span><span data-if="python" style="display:none">"max_overlap_global_enable"</span>, <span data-if="hdevelop" style="display:inline">'metric'</span><span data-if="c" style="display:none">"metric"</span><span data-if="cpp" style="display:none">"metric"</span><span data-if="com" style="display:none">"metric"</span><span data-if="dotnet" style="display:none">"metric"</span><span data-if="python" style="display:none">"metric"</span>, <span data-if="hdevelop" style="display:inline">'min_contrast'</span><span data-if="c" style="display:none">"min_contrast"</span><span data-if="cpp" style="display:none">"min_contrast"</span><span data-if="com" style="display:none">"min_contrast"</span><span data-if="dotnet" style="display:none">"min_contrast"</span><span data-if="python" style="display:none">"min_contrast"</span>, <span data-if="hdevelop" style="display:inline">'min_score'</span><span data-if="c" style="display:none">"min_score"</span><span data-if="cpp" style="display:none">"min_score"</span><span data-if="com" style="display:none">"min_score"</span><span data-if="dotnet" style="display:none">"min_score"</span><span data-if="python" style="display:none">"min_score"</span>, <span data-if="hdevelop" style="display:inline">'min_size'</span><span data-if="c" style="display:none">"min_size"</span><span data-if="cpp" style="display:none">"min_size"</span><span data-if="com" style="display:none">"min_size"</span><span data-if="dotnet" style="display:none">"min_size"</span><span data-if="python" style="display:none">"min_size"</span>, <span data-if="hdevelop" style="display:inline">'model_cache'</span><span data-if="c" style="display:none">"model_cache"</span><span data-if="cpp" style="display:none">"model_cache"</span><span data-if="com" style="display:none">"model_cache"</span><span data-if="dotnet" style="display:none">"model_cache"</span><span data-if="python" style="display:none">"model_cache"</span>, <span data-if="hdevelop" style="display:inline">'model_identifier'</span><span data-if="c" style="display:none">"model_identifier"</span><span data-if="cpp" style="display:none">"model_identifier"</span><span data-if="com" style="display:none">"model_identifier"</span><span data-if="dotnet" style="display:none">"model_identifier"</span><span data-if="python" style="display:none">"model_identifier"</span>, <span data-if="hdevelop" style="display:inline">'num_levels'</span><span data-if="c" style="display:none">"num_levels"</span><span data-if="cpp" style="display:none">"num_levels"</span><span data-if="com" style="display:none">"num_levels"</span><span data-if="dotnet" style="display:none">"num_levels"</span><span data-if="python" style="display:none">"num_levels"</span>, <span data-if="hdevelop" style="display:inline">'num_matches'</span><span data-if="c" style="display:none">"num_matches"</span><span data-if="cpp" style="display:none">"num_matches"</span><span data-if="com" style="display:none">"num_matches"</span><span data-if="dotnet" style="display:none">"num_matches"</span><span data-if="python" style="display:none">"num_matches"</span>, <span data-if="hdevelop" style="display:inline">'optimization'</span><span data-if="c" style="display:none">"optimization"</span><span data-if="cpp" style="display:none">"optimization"</span><span data-if="com" style="display:none">"optimization"</span><span data-if="dotnet" style="display:none">"optimization"</span><span data-if="python" style="display:none">"optimization"</span>, <span data-if="hdevelop" style="display:inline">'origin_column'</span><span data-if="c" style="display:none">"origin_column"</span><span data-if="cpp" style="display:none">"origin_column"</span><span data-if="com" style="display:none">"origin_column"</span><span data-if="dotnet" style="display:none">"origin_column"</span><span data-if="python" style="display:none">"origin_column"</span>, <span data-if="hdevelop" style="display:inline">'origin_row'</span><span data-if="c" style="display:none">"origin_row"</span><span data-if="cpp" style="display:none">"origin_row"</span><span data-if="com" style="display:none">"origin_row"</span><span data-if="dotnet" style="display:none">"origin_row"</span><span data-if="python" style="display:none">"origin_row"</span>, <span data-if="hdevelop" style="display:inline">'prepare_clutter_region_for_visualization'</span><span data-if="c" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="cpp" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="com" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="dotnet" style="display:none">"prepare_clutter_region_for_visualization"</span><span data-if="python" style="display:none">"prepare_clutter_region_for_visualization"</span>, <span data-if="hdevelop" style="display:inline">'prepare_contours_for_visualization'</span><span data-if="c" style="display:none">"prepare_contours_for_visualization"</span><span data-if="cpp" style="display:none">"prepare_contours_for_visualization"</span><span data-if="com" style="display:none">"prepare_contours_for_visualization"</span><span data-if="dotnet" style="display:none">"prepare_contours_for_visualization"</span><span data-if="python" style="display:none">"prepare_contours_for_visualization"</span>, <span data-if="hdevelop" style="display:inline">'pyramid_level_highest'</span><span data-if="c" style="display:none">"pyramid_level_highest"</span><span data-if="cpp" style="display:none">"pyramid_level_highest"</span><span data-if="com" style="display:none">"pyramid_level_highest"</span><span data-if="dotnet" style="display:none">"pyramid_level_highest"</span><span data-if="python" style="display:none">"pyramid_level_highest"</span>, <span data-if="hdevelop" style="display:inline">'pyramid_level_lowest'</span><span data-if="c" style="display:none">"pyramid_level_lowest"</span><span data-if="cpp" style="display:none">"pyramid_level_lowest"</span><span data-if="com" style="display:none">"pyramid_level_lowest"</span><span data-if="dotnet" style="display:none">"pyramid_level_lowest"</span><span data-if="python" style="display:none">"pyramid_level_lowest"</span>, <span data-if="hdevelop" style="display:inline">'pyramid_level_robust_tracking'</span><span data-if="c" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="cpp" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="com" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="dotnet" style="display:none">"pyramid_level_robust_tracking"</span><span data-if="python" style="display:none">"pyramid_level_robust_tracking"</span>, <span data-if="hdevelop" style="display:inline">'restrict_iso_scale_max'</span><span data-if="c" style="display:none">"restrict_iso_scale_max"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_max"</span><span data-if="com" style="display:none">"restrict_iso_scale_max"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_max"</span><span data-if="python" style="display:none">"restrict_iso_scale_max"</span>, <span data-if="hdevelop" style="display:inline">'restrict_iso_scale_min'</span><span data-if="c" style="display:none">"restrict_iso_scale_min"</span><span data-if="cpp" style="display:none">"restrict_iso_scale_min"</span><span data-if="com" style="display:none">"restrict_iso_scale_min"</span><span data-if="dotnet" style="display:none">"restrict_iso_scale_min"</span><span data-if="python" style="display:none">"restrict_iso_scale_min"</span>, <span data-if="hdevelop" style="display:inline">'restrict_scale_column_max'</span><span data-if="c" style="display:none">"restrict_scale_column_max"</span><span data-if="cpp" style="display:none">"restrict_scale_column_max"</span><span data-if="com" style="display:none">"restrict_scale_column_max"</span><span data-if="dotnet" style="display:none">"restrict_scale_column_max"</span><span data-if="python" style="display:none">"restrict_scale_column_max"</span>, <span data-if="hdevelop" style="display:inline">'restrict_scale_column_min'</span><span data-if="c" style="display:none">"restrict_scale_column_min"</span><span data-if="cpp" style="display:none">"restrict_scale_column_min"</span><span data-if="com" style="display:none">"restrict_scale_column_min"</span><span data-if="dotnet" style="display:none">"restrict_scale_column_min"</span><span data-if="python" style="display:none">"restrict_scale_column_min"</span>, <span data-if="hdevelop" style="display:inline">'restrict_scale_row_max'</span><span data-if="c" style="display:none">"restrict_scale_row_max"</span><span data-if="cpp" style="display:none">"restrict_scale_row_max"</span><span data-if="com" style="display:none">"restrict_scale_row_max"</span><span data-if="dotnet" style="display:none">"restrict_scale_row_max"</span><span data-if="python" style="display:none">"restrict_scale_row_max"</span>, <span data-if="hdevelop" style="display:inline">'restrict_scale_row_min'</span><span data-if="c" style="display:none">"restrict_scale_row_min"</span><span data-if="cpp" style="display:none">"restrict_scale_row_min"</span><span data-if="com" style="display:none">"restrict_scale_row_min"</span><span data-if="dotnet" style="display:none">"restrict_scale_row_min"</span><span data-if="python" style="display:none">"restrict_scale_row_min"</span>, <span data-if="hdevelop" style="display:inline">'scale_column_max'</span><span data-if="c" style="display:none">"scale_column_max"</span><span data-if="cpp" style="display:none">"scale_column_max"</span><span data-if="com" style="display:none">"scale_column_max"</span><span data-if="dotnet" style="display:none">"scale_column_max"</span><span data-if="python" style="display:none">"scale_column_max"</span>, <span data-if="hdevelop" style="display:inline">'scale_column_min'</span><span data-if="c" style="display:none">"scale_column_min"</span><span data-if="cpp" style="display:none">"scale_column_min"</span><span data-if="com" style="display:none">"scale_column_min"</span><span data-if="dotnet" style="display:none">"scale_column_min"</span><span data-if="python" style="display:none">"scale_column_min"</span>, <span data-if="hdevelop" style="display:inline">'scale_column_step'</span><span data-if="c" style="display:none">"scale_column_step"</span><span data-if="cpp" style="display:none">"scale_column_step"</span><span data-if="com" style="display:none">"scale_column_step"</span><span data-if="dotnet" style="display:none">"scale_column_step"</span><span data-if="python" style="display:none">"scale_column_step"</span>, <span data-if="hdevelop" style="display:inline">'scale_row_max'</span><span data-if="c" style="display:none">"scale_row_max"</span><span data-if="cpp" style="display:none">"scale_row_max"</span><span data-if="com" style="display:none">"scale_row_max"</span><span data-if="dotnet" style="display:none">"scale_row_max"</span><span data-if="python" style="display:none">"scale_row_max"</span>, <span data-if="hdevelop" style="display:inline">'scale_row_min'</span><span data-if="c" style="display:none">"scale_row_min"</span><span data-if="cpp" style="display:none">"scale_row_min"</span><span data-if="com" style="display:none">"scale_row_min"</span><span data-if="dotnet" style="display:none">"scale_row_min"</span><span data-if="python" style="display:none">"scale_row_min"</span>, <span data-if="hdevelop" style="display:inline">'scale_row_step'</span><span data-if="c" style="display:none">"scale_row_step"</span><span data-if="cpp" style="display:none">"scale_row_step"</span><span data-if="com" style="display:none">"scale_row_step"</span><span data-if="dotnet" style="display:none">"scale_row_step"</span><span data-if="python" style="display:none">"scale_row_step"</span>, <span data-if="hdevelop" style="display:inline">'strict_boundaries'</span><span data-if="c" style="display:none">"strict_boundaries"</span><span data-if="cpp" style="display:none">"strict_boundaries"</span><span data-if="com" style="display:none">"strict_boundaries"</span><span data-if="dotnet" style="display:none">"strict_boundaries"</span><span data-if="python" style="display:none">"strict_boundaries"</span>, <span data-if="hdevelop" style="display:inline">'subpixel'</span><span data-if="c" style="display:none">"subpixel"</span><span data-if="cpp" style="display:none">"subpixel"</span><span data-if="com" style="display:none">"subpixel"</span><span data-if="dotnet" style="display:none">"subpixel"</span><span data-if="python" style="display:none">"subpixel"</span>, <span data-if="hdevelop" style="display:inline">'time_measurement'</span><span data-if="c" style="display:none">"time_measurement"</span><span data-if="cpp" style="display:none">"time_measurement"</span><span data-if="com" style="display:none">"time_measurement"</span><span data-if="dotnet" style="display:none">"time_measurement"</span><span data-if="python" style="display:none">"time_measurement"</span>, <span data-if="hdevelop" style="display:inline">'timeout'</span><span data-if="c" style="display:none">"timeout"</span><span data-if="cpp" style="display:none">"timeout"</span><span data-if="com" style="display:none">"timeout"</span><span data-if="dotnet" style="display:none">"timeout"</span><span data-if="python" style="display:none">"timeout"</span>, <span data-if="hdevelop" style="display:inline">'use_clutter'</span><span data-if="c" style="display:none">"use_clutter"</span><span data-if="cpp" style="display:none">"use_clutter"</span><span data-if="com" style="display:none">"use_clutter"</span><span data-if="dotnet" style="display:none">"use_clutter"</span><span data-if="python" style="display:none">"use_clutter"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.value-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Parameter value.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>0.5</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>-3.14, -1.57, -0.79, -0.39, 0.0, 0.39, 0.79, 1.57, 3.14</p>
</div>
<h2 id="sec_result">结果</h2>
<p>如果参数均有效，算子
<code><span data-if="hdevelop" style="display:inline">set_generic_shape_model_param</span><span data-if="c" style="display:none">set_generic_shape_model_param</span><span data-if="cpp" style="display:none">SetGenericShapeModelParam</span><span data-if="com" style="display:none">SetGenericShapeModelParam</span><span data-if="dotnet" style="display:none">SetGenericShapeModelParam</span><span data-if="python" style="display:none">set_generic_shape_model_param</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .
If necessary an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="create_generic_shape_model.html"><span data-if="hdevelop" style="display:inline">create_generic_shape_model</span><span data-if="c" style="display:none">create_generic_shape_model</span><span data-if="cpp" style="display:none">CreateGenericShapeModel</span><span data-if="com" style="display:none">CreateGenericShapeModel</span><span data-if="dotnet" style="display:none">CreateGenericShapeModel</span><span data-if="python" style="display:none">create_generic_shape_model</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="get_generic_shape_model_param.html"><span data-if="hdevelop" style="display:inline">get_generic_shape_model_param</span><span data-if="c" style="display:none">get_generic_shape_model_param</span><span data-if="cpp" style="display:none">GetGenericShapeModelParam</span><span data-if="com" style="display:none">GetGenericShapeModelParam</span><span data-if="dotnet" style="display:none">GetGenericShapeModelParam</span><span data-if="python" style="display:none">get_generic_shape_model_param</span></a></code>, 
<code><a href="train_generic_shape_model.html"><span data-if="hdevelop" style="display:inline">train_generic_shape_model</span><span data-if="c" style="display:none">train_generic_shape_model</span><span data-if="cpp" style="display:none">TrainGenericShapeModel</span><span data-if="com" style="display:none">TrainGenericShapeModel</span><span data-if="dotnet" style="display:none">TrainGenericShapeModel</span><span data-if="python" style="display:none">train_generic_shape_model</span></a></code>, 
<code><a href="find_generic_shape_model.html"><span data-if="hdevelop" style="display:inline">find_generic_shape_model</span><span data-if="c" style="display:none">find_generic_shape_model</span><span data-if="cpp" style="display:none">FindGenericShapeModel</span><span data-if="com" style="display:none">FindGenericShapeModel</span><span data-if="dotnet" style="display:none">FindGenericShapeModel</span><span data-if="python" style="display:none">find_generic_shape_model</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Matching</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
